删除片段

时间:2017-11-13 11:58:00

标签: java android android-fragments

我有一个带有一些操作的工具栏,但是当我将片段更改为另一个时,这些操作应该会改变。
我将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)中的onCreateonOptionsItemSelected

@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”。
这就像选项没有改变,只需将新操作添加到每次单击该项目时必须执行的操作列表中。
我输入新片段时有没有办法清理动作?

问候

1 个答案:

答案 0 :(得分:0)

我解决了它为我需要的每个片段创建一个menu.xml并在其上膨胀菜单。完美运作