以下に概説した以外のユースケースもありますが、定期的に出てくる一般的なケースを入れています。
onOptionsItemSelected
を使用している場合は、アクション バーに項目を追加するで説明されている方法で、アクション バーにメニュー項目を追加するFragment
ことを検討してください。onOptionsItemSelected
これが説明するのは、 onCreateOptionsMenu内に実装することFragment
です。これを実現するには、 でsetHasOptionsMenuを呼び出す必要がありますonCreate
。
protected void onCreate(Bundle savedInstanceState) {
this.setHasOptionsMenu(true);
}
これを設定すると、メニュー項目を追加できるActivity
呼び出しが実際に行われます。onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
// add items corresponding to this Fragment
menu.add(...);
return true;
}
これをお勧めする理由は、どのメニューを呼び出すかなどを把握するFragment
代わりに、より多くのメニュー処理コードを に入れることができるからです。Activity
Fragment
この場合、メニュー項目をクリックするとonOptionsItemSelected
、あなたの内部で呼び出されますFragment
。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.my_id1:
dothing1();
return true;
case R.id.my_id2:
dotghing2();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
より長い答えですが、これは 内でメニューのクリックを処理する方法Fragment
です。
onMenuItemClickListener
の場合onMenuItemClickListener
、これは、上記の事前準備済みメソッドを使用して独自のメソッドを実装したくない場合に使用されます。
つまり、インターフェースでメソッドを実装して生成するということです。 OnMenuItemClickListener
次に、これを実装した を呼び出すメニューを割り当てます。上記のオプションは、 to関係の事前準備済みの実装に基づいて使用するActivity
ものを想定しているためです。Activity
Activity
Fragment