Android操作按钮保留在上一个视图中

时间:2015-04-17 07:56:37

标签: android android-actionbar master-detail

我使用片段在Android中创建了一个主详细信息视图。 (现在我考虑的是手机布局而不是平板电脑布局。)

在我的主视图中,我有一个项目列表,我显示了一个"添加"操作栏中的按钮。

在我的详细视图中,我会显示所选项目的详细信息,"删除"按钮和"编辑"操作栏中的按钮。

现在我已经完成了它,"添加"按钮仍显示在详细视图的操作栏中。

大师班:

public class AvailableZonesFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_available_zones, menu);
    }
}

主菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/add"
        android:icon="@android:drawable/ic_menu_add"
        android:orderInCategory="1"
        app:showAsAction="always"
        android:title="Add">
    </item>
</menu>

详情课程:

public class ZoneDetailsFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_zone_details, menu);
    }
}

详情菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/edit"
        android:icon="@android:drawable/ic_menu_edit"
        android:orderInCategory="1"
        app:showAsAction="always"
        android:title="Edit">
    </item>
    <item
        android:id="@+id/remove"
        android:icon="@android:drawable/ic_menu_delete"
        android:orderInCategory="2"
        app:showAsAction="ifRoom"
        android:title="Delete">
    </item>
</menu>

1 个答案:

答案 0 :(得分:3)

你试过打电话吗

menu.clear();

作为详细信息片段中 onCreateOptionsMenu 的第一行,用于删除上一个片段中的菜单项。