読者です 読者をやめる 読者になる 読者になる

【Android】オプションメニュー

 

f:id:stanleyblenz:20161113143957p:plain

 

f:id:stanleyblenz:20161113144108p:plain

 

f:id:stanleyblenz:20161113182059p:plain

 

  --------------------------------------------------------------------------------------------------------------

res/menu/option_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:id="@+id/menu_title"
    android:title="@string/app_name"
    android:showAsAction="ifRoom|withText"/>
  <item
    android:id="@+id/settings"
    android:orderInCategory="1"
    android:title="@string/settings"
    android:showAsAction="never"/>
  <item
    android:id="@+id/help"
    android:title="@string/help"
    android:orderInCategory="2"
    android:showAsAction="never"/>
</menu>

 

android:orderInCategory="1"   ※表示順
android:showAsAction="never"     ※非表示(隠れている)
android:showAsAction="ifRoom|withText" ※スペースに余裕がある場合テキストを表示

                                                                       (画面の幅が小さい非表示)

--------------------------------------------------------------------------------------------------------------

 ▼Activityの場合

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  getMenuInflater().inflate(R.menu.option_menu, menu);
  return true;

 

 ▼Fragmentの場合

 @Override
public void onViewCreated(View view, Bundle savedInstanceState) {
  ~
  //Fragmentでオプションメニュー使用する場合

       //ないとonCreateOptionsMenuが呼ばれない
  setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  inflater.inflate(R.menu.main, menu);
  super.onCreateOptionsMenu(menu, inflater);
}

 

▼選択メソッド(ActivityとFragment)

@Override
public boolean onOptionsItemSelected(MenuItem item){
  switch(item.getItemId()){
    case R.id.settings:
      return true;
    case R.id.help:
      return true;
    default:
      return super.onOptionsItemSelected(item);
  }
}