现在我的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? 我希望日历菜单分别响应不同的片段。