最高とし、私がこれまでに見つかった最も簡単な答えがありますhere。
基本的に、この場合カスタムレイアウトは必要ありません。ただ、actonViewClassを設定します。その後、
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/spinner"
yourapp:showAsAction="ifRoom"
yourapp:actionViewClass="android.widget.Spinner" /> <== this is all that's required
</menu>
そしていつものように、onCreateOptionsMenuでそれを処理:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onItemSelectedListener);
これは、これまででもっともシンプルでクリーンなソリューションです。元の著者であるFrancois Poyerのクレジット
は4リンクチェック(真)断片のみ内部
setHasOptionsMenu動作します。これらのリンクはあなたのために役立ちます。http://fizzylogic.azurewebsitesを.net/2012/03/05/example-by-action-bar/https://github.com/StylingAndroid/StylingActionBar https://github.com/StylingAndroid/BasicActionBar – Kumar