片段android中的菜单项调用两次
Posted
技术标签:
【中文标题】片段android中的菜单项调用两次【英文标题】:Menu item call twice in fragment android 【发布时间】: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"。
【参考方案1】:
在 onOptionsItemSelected() 函数中返回 true
对我有用。
@Override
public boolean onOptionsItemSelected(MenuItem item)
if(item.getItemId() == R.id.refresh)
RetryCall();
return true;
else
return true;
【讨论】:
以上是关于片段android中的菜单项调用两次的主要内容,如果未能解决你的问题,请参考以下文章