【发布时间】:2015-11-25 03:08:58
【问题描述】:
In fragment when i click on menu item , it calls function twice one is from previous fragment and other one is from existing fragment.
Fragment 1:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.refresh){
RetryCallMap();
return true;
}else
return false;
}
Fragment 2:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.refresh){
RetryCall();
return true;
}else
return false;
}
MainActivity :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.map) {
pushFragments("mapFragment", new MapFragment(), true, true);
return true;
}
if (id == android.R.id.home) {
this.drawerLayout.openDrawer(drawableListView);
return true;
}
return super.onOptionsItemSelected(item);
}
这些是片段和我的 MainActivity,我正在通过单击菜单项来刷新片段,这样如果在获取时未找到 Internet 连接或发生任何其他问题,我可以刷新页面。
【问题讨论】:
-
所以检查片段在
onOptionsItemSelected()中可见 -
请粘贴上一个片段的菜单代码以便更好地参考。
-
我们也有同样的问题。请在片段及其父活动的所有父布局中尝试 android:clickable="true" android:focusableInTouchMode="true"。
标签: android menu android-actionbar fragment double-click