0

我在使用 ContextMenu 时遇到问题。Activity 有一个 ListView。通过点击并按住该 ListView 中的一个项目,一个 ContextMenu 应该会出现项目“删除”和“推送”。这就是我使用的代码:

registerForContextMenu(list);

到目前为止效果很好。

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

谢谢,马克

4

2 回答 2

0

发现问题:

通过点击我的 S3 上的“设置按钮”而不是 onCreateContextMenu(),而是在它说的地方调用 onCreateOptionsMenu() getMenuInflater().inflate(R.menu.myActivity, menu);:。删除该行后,一切正常。

于 2013-05-31T18:53:31.423 回答
0

您应该检查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-05-31T18:07:22.120 回答