タイトルが言うように、私は長く押してデータベースからリスト内のアイテムを削除するオプションを持っているリストを持っています。私がコードを実行すると、何も起こりませんし、 "フォーカスを無視してウィンドウがすでにフォーカスされている"という警告が表示されます。アンドロイド - コンテキストメニューを使用してデータベースからアイテムを削除
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.remove:
System.out.println(sindex);
db.open();
db.deleteIP(info.position); //deleteIP is the method to delete item from list
db.close();
return true;
default:
return super.onContextItemSelected(item);
}
}
deleteIP() - -
public boolean deleteIP(long _id)
{
return db.delete(DATABASE_TABLE, KEY_ID + "=" + _id, null) > 0;
}
あるdb.deleteIP(info.position)
が問題を作成し、ここで は、コードスニペットがありますか? もう1つのオプションを試しました。リスト項目のインデックスをsindexに保存しました。だからdb.deleteIP(sindex)
を呼び出すと効果があったはずです。しかしそれはdoesnt!
助けてください!おかげさまで
データがdbから削除されたかどうかを確認しましたか?しかし、あなたはアダプタをリフレッシュしませんでした – Selvin
データが削除されたかどうかチェックする必要がありますか? – Umang
あなた自身のコードを理解できないのですか? deleteIPが返すものを確認するか、行がまだそこにあるかどうかを確認するためにアプリケーションを再実行してください。 – Selvin