Android_アクションバーの設置

「Android_アクションバーの設置」の編集履歴(バックアップ)一覧に戻る

Android_アクションバーの設置 - (2013/07/11 (木) 14:19:42) のソース

[[トップページ]] > [[Android]] > アクションバー(ActionBar)の設置

**アクションバーの出し方

デフォルトで表示されている。表示したくない場合は、

 requestWindowFeature(Window.FEATURE_NO_TITLE);

をonCreateメソッド内で実行して消すことも出来る。

また、上記とは別に
 getActionBar().show();
 getActionBar().hide();
でいつでも表示/非常時を切り替えられる。

**ホームボタンを有効に

 Homeボタン(左上部のアプリアイコン)をボタンとして有効にするには、

 getActionBar().setHomeButtonEnabled(true);

を使う。こうすると、HomeボタンをタップしたときにonMenuItemSelected(int featureId,MenuItem item)
メソッドが呼ばれる。このとき、item.getItemId()の値がandroid.R.id.homeになっているので、
それを検知して動作を決めればよい。

**ホームボタンで上位階層へ戻らせる。

 Homeボタンの左側に戻る記号「<」を表示するには

 getActionBar().setDisplayHomeAsUpEnabled(true);

とすれば良い。さらに、ボタンを押したときの動作として
 @Override
 public boolean onMenuItemSelected(int featureId, MenuItem item) {
   super.onMenuItemSelected(featureId, item);
   switch (item.getItemId()) {
   case android.R.id.home:
     finish();
     break;
   default:
   }
   return true;
 }
のように実装すれば、アクティビティを破棄して元に戻れる。

**Android 2.3対応

アクションバーは、Android 2.3だとないので、NoSuchMethodErrorが出てしまう。
次のようなオーバーライドしておいた方がよいかも。

 public ActionBar getActionBar() {
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
     return super.getActionBar();
   }
   return null;
 }

使うときも、nullでないことを判定してから利用するように

 ActionBar ab = getActionBar();
 ab.setHomeButtonEanbled(true);



2013/7/11