工具栏的Android菜单响应不同的片段

时间:2015-04-22 01:07:50

标签: android menu fragment toolbar

现在我的mainActivity.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/tool_bar" />

    <FrameLayout android:id="@+id/tab_content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <include layout="@layout/bottom_bar" />

</LinearLayout>

此页面底部有四个标签,每个标签与一个不同的片段相关联,该片段将添加到android:id =&#34; @ + id / tab_content&#34;。

这样的menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_calendar"
        android:icon="@drawable/ic_title_date"
        android:orderInCategory="100"
        android:title="@string/calendar"
        app:showAsAction="always" />
    <item
        android:id="@+id/action_notification"
        android:icon="@drawable/ic_title_notification"
        android:orderInCategory="200"
        android:title="@string/notification"
        app:showAsAction="always" />

</menu>

我在MainActivity.java中有这些代码

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.menu_main, menu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    return super.onOptionsItemSelected(item);
}

Fragment2和Fragment3有这些代码:

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

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

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    int id = item.getItemId();

    if (id == R.id.action_calendar)
    {
        showDatePicker();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

机器人:ID =&#34; @ + ID / action_calendar&#34; menuItem是一个datePicker,我想使用这个menuItem进行过滤,以加载fragment2和fragment3的数据。

这是我的问题,当我导航到fragment3并单击日历菜单然后更改为fragment2时,单击日历,系统调用片段3中的onOptionsItemSelected方法,而不是片段2? 我希望日历菜单分别响应不同的片段。

0 个答案:

没有答案