最近、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());
}
});
}
ご覧のとおり、各 ImageButton に、削除するボックスの ID をタグ付けしました。私がここでできるようにしたいのはこれです:
getContentResolver().delete(uri...);
このコードは、ContentProvider
そのボックスとそのすべての内容を削除するようにカスタムに指示します。明らかな問題は、 my のコンテキストから、CursorAdapter
を呼び出せないことgetContextResolver
です。ContentProvider
内から私と話すには、どのような方法が最善でしょうCursorAdapter
か? 前もって感謝します!