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)); 
    } 
} 
相關問題