Как добавить второй выпадающий список в панель действий в Android Honeycomb? - PullRequest
4 голосов
/ 20 апреля 2011

Я играл с Honeycomb на прошлой неделе, и мне было трудно найти что-то о нескольких выпадающих списках в панели действий. Я использовал этот учебник и успешно добавил в него один выпадающий список. Но я не знаю, как добавить еще один. Пожалуйста, скажите мне, если вы знаете, как это сделать. Спасибо.

P.S. также немного это, как я могу изменить положение элементов в панели действий (это не по теме)?

Ответы [ 2 ]

9 голосов
/ 11 апреля 2013

Не уверен насчет Honeycomb, но мне удалось добавить два раскрывающихся списка на панель действий в JellyBean без использования собственного представления.

res / menu / 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));
    }
}
2 голосов
/ 20 апреля 2011

Вы должны сделать это сами.Вместо setNavigationMode() используйте setCustomView().

PS Также немного о том, как я могу изменить положение элементов в панели действий (это не по теме)?

Как правило, вы не можете.Вы управляете порядком (например, кнопки панели инструментов через порядок, который они находятся в вашем меню настроек XML).Вот и все.

...