アクティビティが変更されたときにメニューを変更するのが好きです。activity_main.xml メニューを備えた MainActivity.java があります。次に、detail_view_menu.xml を含む MyDetailFragment.java があります。MainActivity メニューは、MainActivity.java の onCreateOptionsMenu で次のように拡張されます。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.activity_main, menu);
return (super.onCreateOptionsMenu(menu));
}
それは正常に動作します。いずれかのアイテムがタップされ、MyDetailFragment.java がロードされたときに、detail_view_menu.xml を表示するのが好きです。私が実装する方法は
public class MyDetailsFragment extends Fragment {
TrackerInfo trackerInfo;
public MyDetailsFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.my_details_fragment, container, false);
setHasOptionsMenu(true);
TextView displayText = (TextView) view.findViewById(R.id.details);
displayText.setText(trackerInfo.getIdnumber());
return view;
}
public void retrieveData(TrackerInfo tracker){
trackerInfo = tracker;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.detail_view_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.track:
return (true);
case R.id.view_history:
return (true);
}
return (super.onOptionsItemSelected(item));}}
しかし問題は、メニューがまだ同じ activity_main メニューであり、変更されていないことです。何が問題なのですか?