我的ContextMenu出了点问题。该活动有一个ListView。通过点击并按住该ListView中的项目,应该会出现一个带有“删除”和“推送”项目的ContextMenu。这就是我使用的代码:
registerForContextMenu(list);到目前为止效果很好。
问题是,当我点击S3上的“设置-按钮”时,ContextMenu也会出现。在这种情况下,这是没有意义的,因为没有选择ListView的项。有没有可能抑制这种情况?(我不需要整个活动的ContextMenu,只需要ListView的项。)
谢谢,马克
发布于 2013-06-01 02:07:22
您应该选中menuInfo并确定它是为列表中的项目创建的,还是您所说的任意创建的,或者您也可以选中view1
@Override
public void onCreateContextMenu(ContextMenu menu, View view1,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, view1, menuInfo);
if(manuInfo is something){ // bla bla or you can check view1
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}else{
return;
}
}这应该行得通,让我知道是不是不行。
发布于 2013-06-01 02:53:31
找到问题了:
通过点击我的S3上的“设置按钮”,不是onCreateContextMenu(),而是onCreateOptionsMenu()在它说:getMenuInflater().inflate(R.menu.myActivity, menu);的地方被调用。删除这一行后,一切工作正常。
https://stackoverflow.com/questions/16863151
复制相似问题