4

私は先週 Honeycomb をいじっていましたが、Action Bar の複数のドロップダウン リストについて何かを見つけるのに苦労しました。このチュートリアルを使用して、ドロップダウン リストを 1 つ追加することに成功しました。しかし、もう1つ追加する方法がわかりません。やり方わかる方教えてください。ありがとう。

PS また、アクション バーの要素の位置を変更するにはどうすればよいですか (これはトピック外です)。

4

2 に答える 2

9

ハニカムについてはよくわかりませんが、カスタム ビューを使用せずに JellyBean のアクション バーに 2 つのドロップダウン リストを追加できました。

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));
    }
}
于 2013-04-11T19:15:36.263 に答える
2

あなたはそれを自分でしなければならないでしょう。の代わりにsetNavigationMode()、 を使用しますsetCustomView()

PS また、アクション バーの要素の位置を変更するにはどうすればよいですか (これはトピック外です)。

通常、できません。順序を制御します (たとえば、オプション メニュー XML 内の順序でツールバー ボタンを制御します)。それだけです。

于 2011-04-20T11:55:40.273 に答える