Android:ContextMenu无法显示

时间:2011-08-27 09:35:19

标签: android listview contextmenu

在我的应用程序中,我的主布局中有一个ListView。在相应的Activity中,我在onCreate中有以下内容:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    app = (MyTallyKeeperApplication) getApplication();
    adapter = new TallyItemListAdapter(this, app.getTallyItems());
    setListAdapter(adapter);
    registerForContextMenu(getListView());
}

ListView中的每个项目都是TallyItemView类型,继承自LinearLayout。我用来夸大上下文菜单的代码是:

    @Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    Log.i(MyTallyKeeperMain.class.getSimpleName(), "onCreateContextMenu");
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.item_menu, menu);
}

理论上,当您长按某个项目时,会显示一个上下文菜单,您可以选择编辑该项目或将其删除。但是当我长按一个项目时,没有显示任何内容。 关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:8)

如果列表具有可聚焦项(复选框等),则会发生这种情况。在列表行的布局中,为可聚焦组件包含此项。

android:focusable="false"

答案 1 :(得分:0)

尝试使用super.onCreateContextMenu(menu, v, menuInfo);最后而不是第一次。 Here is a sample project显示使用带有ListView的上下文菜单。