从Fragment操作ActionBar

时间:2014-06-09 13:48:06

标签: android android-fragments android-actionbar navigation-drawer

我想知道使用ActionBarFragment操作的推荐方法。

我的应用中的常规导航是使用NavigationDrawer。然而,一个片段显示音乐专辑,我想使用导航下拉按类型过滤专辑。是这样做的正确方法吗? 我应该如何在ActionBar's下拉列表中填充流派?我应该在Activity还是Fragment中执行此操作?

2 个答案:

答案 0 :(得分:1)

ActionBar始终存在于Activity中,需要从此处控制/填充。

由于您正在使用片段,因此当您在片段之间切换时,应该使用Activity(onCreateOptionsMenu())中的AB生命周期方法来更改AB项目(再次在您的Activity中完成,因此您已经在制作片段变化,只需要进行AB更改)。

我认为您正在描述NavDrawer,AB和Fragment用法的正确用例 - 将您的内容片段的过滤条件放在AB中是合适的。

答案 1 :(得分:1)

您可以在资源文件中创建一个字符串数组,其中列出了类型。这都在资源标签内。

<string-array name="genres">
<item>music_Genre1</item>
<item>music_Genre2</item>
.....
</string-array>

然后将其添加到微调器的实例

Spinner spinner = (Spinner) findViewById(R.id.your_View);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.genres, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

或者如果已经在onCreateOptionsMenu()中创建了数组,我相信它应该有一个字符串数组,其中包含字符串资源(@ string / dropdown_item),你可以在那里添加更多,当然,添加&amp;更改资源文件中的字符串名称。然后使用onItemSelected方法与下拉列表进行交互。