我最近开始自学 Android 开发。现在我正在制作一个显示框列表的应用程序;单击一个框会显示其内容。主列表中的每个行视图在框名称旁边都有一个“删除”图标。我的 ListAdapter 是CursorAdapter
. 在 的bindView()
方法中CursorAdapter
,我执行以下操作:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView name = (TextView) view.findViewById(R.id.text_box_name);
name.setText(cursor.getString(cursor
.getColumnIndex(DatabaseContract.BoxEntry.NAME)));
name.setFocusable(false);
ImageButton delete = (ImageButton) view.findViewById(R.id.button_box_delete);
delete.setFocusable(false);
delete.setTag(cursor.getLong(0));
delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
long id = ((Long) view.getTag());
}
});
}
如您所见,我已经用它应该删除的框的 ID 标记了每个 ImageButton。我希望能够在这里做的是:
getContentResolver().delete(uri...);
此代码将告诉我的自定义ContentProvider
删除该框及其所有内容。明显的问题是,从 my 的上下文来看CursorAdapter
,我不能调用getContextResolver
. ContentProvider
从内部与我交谈的最佳方式是CursorAdapter
什么?提前致谢!