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我刷新片段上的菜单项单击,以便如果没有找到互联网连接或任何其他问题发生,而获取我可以刷新页面。
在onOptionsItemSelected()函数中返回true
为我工作。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.refresh){
RetryCall();
return true;
}else
return true;
}