Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android项目中向ActionBar添加下拉菜单?_Android - Fatal编程技术网

如何在Android项目中向ActionBar添加下拉菜单?

如何在Android项目中向ActionBar添加下拉菜单?,android,Android,我一直在开发Android应用程序,但我对Android的4+版本知之甚少。因此,请帮助我-我制作了带有导航选项卡的Android应用程序: final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 但我还需要为其他目标在ActionBar中添加下拉菜单。我能做吗?如果可能的话,请给我举个例子。先谢谢你 你可以使用一种叫做安卓微调器的东西。看起

我一直在开发Android应用程序,但我对Android的4+版本知之甚少。因此,请帮助我-我制作了带有导航选项卡的Android应用程序:

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

但我还需要为其他目标在ActionBar中添加下拉菜单。我能做吗?如果可能的话,请给我举个例子。先谢谢你

你可以使用一种叫做安卓微调器的东西。看起来是这样的:

您也可以通过多种方式对其进行定制,以适合您的应用程序设计

以下是谷歌关于如何使用这些工具的精彩教程:

如果要将其添加到操作栏,可以通过微调器适配器执行,如下所述:

如果要添加图标以执行某些操作,则可以看到:

如果您想在工具栏本身执行某些操作(如在谷歌搜索应用程序中搜索),请参见以下内容:

如果要添加导航选项卡,请参见以下内容:

到目前为止,我找到的最好、最简单的答案就在这里

基本上,在这种情况下不需要自定义布局。只需设置actonViewClass:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

  <item android:id="@+id/spinner"
    yourapp:showAsAction="ifRoom"
    yourapp:actionViewClass="android.widget.Spinner" />
</menu>

这是迄今为止最简单、最干净的解决方案。归功于原作者François POYER。

我知道这个元素的存在,但我不知道如何将微调器添加到ActionbarIt中。它与我的任务不匹配。请告诉我,我如何才能将文本视图或图标添加到ActionBar?添加了更多资源来帮助您。您不能将普通的文本视图和图标添加到操作栏,因为它是一个特殊的UI元素,而不是普通的布局。但是你可以添加一些东西来帮助你完成任务。我需要一个带有按钮/图标的ActionBar,例如图标“Search”,以帮助用户做一些常见的事情并为每个任务添加操作项。请参阅我上面提到的资源。你可以将任何你想要的图标添加到动作项中,你可以设置动作侦听器,当用户单击它们时,这些侦听器将执行任何你想要的操作。那么为什么不直接链接到答案呢?如果我给出答案,你会说链接不可靠:)那么为什么不在评论中链接呢?链接不可靠,这应该是一个评论。这是一个解决不了任何问题的办法。提供了更完整的纺纱机示例
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_layout, menu);
    MenuItem item = menu.findItem(R.id.spinner);
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
    spinner.setAdapter(adapter); // set the adapter to provide layout of rows and content
    s.setOnItemSelectedListener(onItemSelectedListener); // set the listener, to perform actions based on item selection