如何在Android Honeycomb的Action Bar中添加第二个下拉列表?

时间:2011-04-20 08:56:48

标签: java android android-widget android-3.0-honeycomb android-actionbar

上周我一直在玩Honeycomb,很难在Action Bar中找到关于多个下拉列表的内容。 我使用了this教程并成功添加了一个下拉列表。但我不知道如何添加另一个。如果你知道怎么做,请告诉我。 感谢。

P.S。还有一点我怎么能改变Action Bar中元素的位置(这是偏离主题)?

2 个答案:

答案 0 :(得分:9)

不确定Honeycomb但是我能够在JellyBean的操作栏中添加两个下拉列表,而不使用自定义视图。

RES /菜单/ main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item
    android:id="@+id/menu_main_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
  <item
    android:id="@+id/menu_status_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
</menu>

MyActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate( R.menu.main_menu, menu );

    MenuItem mainMenuSpinner = menu.findItem( R.id.menu_main_spinner);
    setupMainMenuSpinner( mainMenuSpinner );

    MenuItem statusSpinner = menu.findItem( R.id.menu_status_spinner );
    setupStatusSpinner( statusSpinner );

    return super.onCreateOptionsMenu(menu);
}

private void setupMainMenuSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.main_menu_options,
                android.R.layout.simple_spinner_dropdown_item));
    }
}

private void setupStatusSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.status,
                android.R.layout.simple_spinner_dropdown_item));
    }
}

答案 1 :(得分:2)

你必须自己做。而不是setNavigationMode(),请使用setCustomView()

  

P.S。还有一点,我怎么能改变Action Bar中元素的位置(这是偏离主题的)?

一般来说,你不能。您可以通过选项菜单XML中的顺序控制顺序(例如,工具栏按钮)。这就是它。