ActionBarへSpinner設置

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なら画面左上にある

いろいろなアプリを見てレイアウトを参考にすると
より使いやすいアプリになる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です