Android ListView上下文菜单

Android ListView上下文菜单,android,android-listview,android-contextmenu,Android,Android Listview,Android Contextmenu,我对上下文菜单有问题。 该活动有一个ListView。点击并按住该列表视图中的某个项目,就会出现一个上下文菜单,其中包含“删除”和“推送”两个项目。 这就是我使用的代码: registerForContextMenu(list); 到目前为止效果很好 问题是,当我点击S3上的“设置按钮”时,ContextMenu也会出现。在这种情况下没有任何意义,因为未选择ListView的任何项。有可能抑制这种情况吗?(我不需要整个活动的上下文菜单,只需要ListView的项目。) 谢谢, Marc您应该检

我对上下文菜单有问题。 该活动有一个ListView。点击并按住该列表视图中的某个项目,就会出现一个上下文菜单,其中包含“删除”和“推送”两个项目。 这就是我使用的代码:

registerForContextMenu(list);
到目前为止效果很好

问题是,当我点击S3上的“设置按钮”时,ContextMenu也会出现。在这种情况下没有任何意义,因为未选择ListView的任何项。有可能抑制这种情况吗?(我不需要整个活动的上下文菜单,只需要ListView的项目。)

谢谢,
Marc

您应该检查
菜单信息
,并确定它是为列表中的项目创建的,还是您所说的任意创建的,或者您可以检查
视图1

@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;
    }
}
这应该可以,如果不行,请告诉我。

发现问题:

通过点击S3上的“设置按钮”,调用的不是onCreateContextMenu(),而是onCreateOptionsMenu(),它的意思是:
getMenuInflater()。充气(R.menu.myActivity,menu)
删除该行后,一切正常。

谢谢。我做了以下操作:
if(view1==list){…}
。但它仍然不起作用。点击“设置”按钮,ContextMenu仍会出现。通过调试,我看到,在点击该按钮后,onCreateContextMenu()甚至没有被调用。