ActionBarへSpinner設置
ActionBarにはSpinnerを設置できる機能が標準で搭載されている
ただし、見た目はSpinnerだけど
ドロップダウンナビゲーションと呼ばれる
Spinnerを使うには
ActionBarへ
DropDownNavigation
を使うための宣言をする
この宣言をすることでActionBarに
ナビゲーションがでるようになる
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
次にタイトルの非表示設定
これは、タイトルを非表示にして
DropDownNavigationをタイトルの代わりに使うため
getActionBar.setDisplayShowTitleEnabled(false);
例えば、Android標準のギャラリーとか
Gmailアプリの場合だと
タイトルの代わりにフィルターになっている
ほかにも探すといろいろなアプリごとの特徴があるので面白い
これで、次にリストへアイテムを追加する
Spinnerなどに設定するAdapterなどと同じように
まずArrayAdapter
文字列を設定したものを用意する
今回はテストデータということで
スマホのosにしてみた
//DropDownListへの追加項目 List<String> list = new ArrayList<String>(); list.add("iOS"); list.add("Android"); list.add("Window"); mAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, android.R.id.text, list ); getActionBar().setListNavigationCallbacks(mAdapter,this);
次に、指定したActivityへ
OnNavigationListenerをセット
今回はthis
このため、Activityへ
implements OnNavigationListener
を追加する
また、そのほかにも必要なコード追加する
private ArrayAdapter<String> mAdapter; @Override public boolean onNavigationItemSelected(int position, long itemId){ String item = mAdapter.getItem(position); Toast.makeText(this,"この項目を選択したよ", ToastLENGH_SHORT).show(); return false; }
DropDownNavigationは、画面遷移のためのインターフェースとして使われることが多く
Google製アプリでよく使われる
Google Mapなら画面左下にあり
Gmailなら画面左上にある
いろいろなアプリを見てレイアウトを参考にすると
より使いやすいアプリになる