メインアクティビティのメニューと、メインアクティビティに含まれるフラグメントのメニューが必要です。フラグメントが表示されたら、メインのアクティビティメニューを削除し、フラグメントメニューを展開します。しかし私は、これは結果であり、これを達成しようとしている。それだけでアクティビティではなくフラグメント内の別のメニューを使用する方法は?
メインアクティビティメニュースニペット:フラグメントが表示されている
メインアクティビティメニュースニペット:
明らかに、主なアクティビティのメニューを置き換える代わりに、フラグメントメニューを作成して膨らませたにもかかわらず、それに追加しています。ここで
はこの責任活動のコードです:ここで
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
// Depending on which fragment is used display different actions.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
は、この責任のフラグメントのコードです:ここで
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.friend_menu, menu);
}
はfriend_menu.xmlです:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:icon="@drawable/ic_person_add_black_24dp"
android:id="@+id/nav_person_add"
android:title="Add people"
app:showAsAction="ifRoom" />
</menu>
(検索アクションとadd_friendアクションなしで)目的のメニューを取得するにはどうすればよいですか?あなたを維持したい場合は、clear()
にメニューを試みることができる// Depending on which fragment is used display different actions.