我有一个带有一些操作的工具栏,但是当我将片段更改为另一个时,这些操作应该会改变。
我将setHasOptionsMenu(true);
放在我需要更改工具栏项操作的每个片段的onCreate
中。
示例片段1 onOptionsItemSelected
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.borrarlote:
Toast.makeText(viewRoot.getContext(), "Parametros", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
只需要向我展示一个带有片段名称的Toast,它就能正确显示。
现在我更改为片段2,重复setHasOptions(true)
中的onCreate
和onOptionsItemSelected
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.borrarlote:
Toast.makeText(viewRoot.getContext(), "Fragment Inicio", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
在我的理论中,该应用程序将显示Toast说“片段Inicio”,但在现实中它显示Toast说“Parametros”然后另一个说“Fragment Inicio”。
这就像选项没有改变,只需将新操作添加到每次单击该项目时必须执行的操作列表中。
我输入新片段时有没有办法清理动作?
问候
答案 0 :(得分:0)
我解决了它为我需要的每个片段创建一个menu.xml并在其上膨胀菜单。完美运作