我正在尝试使用 ContextMenu。我已经使用 SimpleCursorAdapter 为一个简单的 ListActivity 成功完成了这项工作。
继续我想用 CursorAdapter 替换 SimpleCursorAdapter 但仍然保留 ContextMenu 行为,所以我添加了两个强制覆盖函数 bindView 和 newView
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = mLayoutInflater.inflate(R.layout.check_row, parent, false);
registerForContextMenu(view);
return view;
}
注意 registerForContextMenu 替换了 ListActivity 的 onCreate 方法中的 registerForContextMenu(getListView())。我发现有必要调用 onCreateContextMenu(...)
除了提供给 onCreateContextMenu(...) 的 ContextMenuInfo 参数之外,所有这些都有效(使用预期的小部件创建的行、它们的回调等)现在为空 - 阻止我访问 rowId。
是否还有其他技巧可以执行 - 也许在 CursorAdapter 的 bindView(...) 方法中?