我有这个问题,我从没想过会发生这个问题。当我按下菜单按钮时,程序显示菜单,当我点击菜单中的一个项目后,它会弹出一个项目列表供我选择。但是,当项目列表弹出时,onOptionsItemSelected()中的一些代码在我甚至没有选择任何项目时被调用。在我选择了项目之后,再次调用onOptionsItemSelected()(我知道这是因为选择了一个项目而调用)。任何人都可以告诉我如何解决这个问题,甚至为什么会发生这种情况?以下是编码......
顺便说一下,'count'只是一个整数变量,用于显示onOptionsItemSelected()是否被调用,因为每次调用时它都会递增。
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu sendMenu = menu.addSubMenu("Change Profile");
int size = profileNames.size();
for(int i=0; i<size; i++){
sendMenu.add(0,i,0,profileNames.get(i).toString());
}
menu.add(1, size, 0, "Configuration");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
count++;
Toast toast1 = Toast.makeText(this, "Count: "+count, Toast.LENGTH_SHORT);
toast1.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast1.show();
selectedProfileName = null;
//change the map according to the selected profile name
if(item.getItemId()<=profileNames.size()-1){
selectedProfileName = profileNames.get(item.getItemId());
setContentView(new SampleView(this));
}
else{
Intent myIntent=new Intent(this,configurationTabWidget.class);
startActivity(myIntent);
}
//just to re-draw the map with the new selected profile name
return true;
}
答案 0 :(得分:0)
您正在选择两个项目 - 首先选择“更改个人资料”菜单项,然后从子菜单中选择特定项目。