0

我的ListView应用程序中有一个自定义适配器。我想添加一个ContextMenu用于删除其中的项目ListView

在我的onCreate方法中,我注册了Context Menu

registerForContextMenu(lastCases);

其中参数是我的 ListView

这应该调用这个方法:

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

如您所见,每当调用此方法时,我都会使用 Logger 记录信息。但它不会向 输出任何内容LogCat,这表明该方法永远不会被触发。

另外我应该提到我ListView的充满了这种方法的信息:

private void RefreshCaseList() {

    lastTenCases = db.getAllCases(10);
    if (lastTenCases.size() > 0)
        error.setText("");

    lastCases.setAdapter(new CustomAdapter(myClass.this, lastTenCases));

}

此方法从数据库中获取一些对象,并用这些对象填充,但在我注册inListView之前调用此方法。context menuOnCreate

没有发生错误,所以我没有更多信息可以帮助我。任何人都知道如何使用定制适配器制作一个Context Menufor a吗?ListView

提前致谢!

4

1 回答 1

0

解决方案

在我的 BaseAdapter 中,我必须这样做:

convertView.setLongClickable(true);
于 2012-09-10T11:59:30.660 回答