回答の2番目のオプションを使用してActionBarにスピナーを追加しました ここ 。
スピナーアダプターをスピナーに追加するにはどうすればよいですか? Googleが説明しているようにSpinnerオブジェクトを使用してみました ここ しかし、nullのSpinnerオブジェクトを取得します。
誰かがこれを行う方法を知っていますか?スピナーをアクションバーのナビゲーション領域に配置したくはありませんが、他のアクションアイテムと一緒に配置します(分割アクションバーを使用しています)。
助けてくれてありがとう!
さて、私はサブメニューを使用するためのスピナーのアイデアを捨てました。スピナーは、選択されたままのものを選択するためのものであることに気づきました。サブメニューは、UIに合わせて調整されています。
私はこれが古い質問であることを知っていますが、誰かが(私がしたように)それにつまずいて完全な答えを探している場合に備えて、互換性ライブラリを使用してそれを行う方法を示します。これにより、v7(Android 2.1 Eclair)から現在のv19(Android 4.4 KitKat)へ:
Menu_layout.xml内:
<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" />
</menu>
yourapp
としてエイリアスされたhttp://schemas.Android.com/apk/res-auto
名前空間を使用すると、古いバージョンのAndroidには存在しない属性showAsActionおよびactionViewClassを使用できます。
次に、アクティビティコードで:
@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);
spinner.setAdapter(adapter); // set the adapter to provide layout of rows and content
spinner.setOnItemSelectedListener(onItemSelectedListener); // set the listener, to perform actions based on item selection
Etvoilà!
あなたがスピナーを捨てたことは知っていますが、他の人が同じ問題を抱えている場合や、別のアプリで同じパターンを開発するようになった場合に備えて、ここでいくつかのヒントを示します
次に、OnCreateOptionsMenu
で次のことを行います。
inflater.inflate(R.menu.my_menu, menu); // inflate the menu
Spinner s = (Spinner) menu.findItem(R.id.my_menu_spinner).getActionView(); // find the spinner
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity().getActionBar()
.getThemedContext(), R.array.my_menu_spinner_list, Android.R.layout.simple_spinner_dropdown_item); // create the adapter from a StringArray
s.setAdapter(mSpinnerAdapter); // set the adapter
s.setOnItemSelectedListener(myChangeListener); // (optional) reference to a OnItemSelectedListener, that you can use to perform actions based on user selection
幸せなコーディング...