Android 在游标适配器中获取ContentResolver

Android 在游标适配器中获取ContentResolver,android,android-contentprovider,android-cursoradapter,Android,Android Contentprovider,Android Cursoradapter,我最近开始自学Android开发。现在我正在制作一个显示盒子列表的应用程序;单击一个框显示其内容。主列表中的每个行视图在框名称旁边都有一个“删除”图标。我的ListAdapter是CursorAdapter的一个子类。在CursorAdapter的bindView()方法中,我执行以下操作: @Override public void bindView(View view, Context context, Cursor cursor) { TextView name = (TextVi

我最近开始自学Android开发。现在我正在制作一个显示盒子列表的应用程序;单击一个框显示其内容。主列表中的每个行视图在框名称旁边都有一个“删除”图标。我的ListAdapter是
CursorAdapter
的一个子类。在
CursorAdapter
bindView()
方法中,我执行以下操作:

@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
删除该框及其所有内容。显而易见的问题是,从我的
游标适配器的上下文中,我无法调用
getContextResolver
。从
光标或适配器中与我的
内容提供者
交谈的最佳方式是什么?提前谢谢

Context
包含该方法,因此您可以将
bindView
编写为:

@Override
public void bindView(View view, final 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());
            context.getContentResolver().delete(uri...);
        }
    });
}


请注意,您的
上下文必须是
final
,才能在匿名内部类中引用它。

谢谢!我很惊讶我错过了。我会投票,但我缺乏声誉:)