4

我上周一直在玩Honeycomb,并且很难在Action Bar中找到关于多个下拉列表的内容。 我已经使用this教程,并成功添加了一个下拉列表。但我不知道如何添加另一个。请告诉我,如果你知道如何去做。 谢谢。如何将第二个下拉列表添加到Android Honeycomb中的操作栏?

P.S.还有一点,我该如何改变Action Bar中元素的位置(这是脱离主题的)?

回答

2

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

P.S.还有一点,我该如何改变Action Bar中元素的位置(这是脱离主题的)?

通常,你不能。您可以通过它们在选项菜单XML中的顺序控制订单(例如,工具栏按钮)。这是非常多的。

+0

好的,谢谢。感觉就像我可以在我的'CustomView'中放置我想要的东西。希望我今天晚上会尝试一下。任何关于它的文章?我检查了[this](http://android-developers.blogspot.com/2011/04/customizing-action-bar.html)和[this](http://developer.android.com/guide/topics /ui/actionbar.html),但没有发现任何关于它的信息。 – 2011-04-20 17:51:17

+0

@亚历克斯布什:我还没遇到任何使用自定义视图的东西,我还没有自己尝试过,在操作栏中的那个位置。如果你希望你的'Spinner'更靠右,那么你可以在你的选项菜单XML中使用'android:actionView'。我在这里有一个样本:https://github.com/commonsguy/cw-android/tree/master/Menus/ActionBarBC – CommonsWare 2011-04-20 20:54:39

+0

是的,它的工作!我在Action Bar中获得了一个自定义视图,并在那里使用了几个PopupMenus和Spinners。谢谢! – 2011-04-22 10:55:28

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)); 
    } 
} 
相关问题