私のアプリには、2 つのフラグメントをホストする 1 つのアクティビティがあります。MenuItem を Menu に追加した場合、フラグメントでそれを取得できますか? アクティビティの OptionMenu と子フラグメントの OptionMenu の間のリンクは何ですか?
質問する
8020 次
3 に答える
5
渡された引数としてを呼び出す必要setHasOptionsMenu();
があり、 onCreate オプション メニューをオーバーライドできます。true
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Enable the option menu for the Fragment
setHasOptionsMenu(true);
}
フラグメントごとに異なる optionsMenu が必要な場合は、2 つの異なるメニュー xml ファイルを定義し、それらをonCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment1_menu, menu);
}
于 2013-03-15T03:11:54.730 に答える
0
MenuItem
次のように、Activity に追加して、id で s でonCreateOptionsMenu()
それらを取得できることがわかりました。Fragment
アクティビティ:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
itemId= 0;
menu.add(0, itemId, 0, "item");
return super.onCreateOptionsMenu(menu);
}
断片:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
itemId= 0
MenuItem menuItem= menu.findItem(itemId);
}
于 2013-03-16T21:38:30.710 に答える
0
サブフラグメントでアクティビティのメニューのイベントをキャッチすることはできません。代わりに、フラグメントに のようなものを実装させることができますMenuItem.OnMenuItemClickListener
。アクティビティのonOptionsItemSelected(MenuItem item)
メソッドでは、単に を呼び出しますYourFragment
。onMenuItemClick()
.
于 2013-03-15T04:03:23.373 に答える