我有一個listView由插入到我的sqlite數據庫中的數據填充。使用ContextMenu刪除特定的行sqlite
我創建了一個contextMenu,所以我可以從我的ListView中刪除項目。
當我點擊刪除,我想從我的數據庫和從我的listView刪除項目。但我不能,我不知道爲什麼。但我想通過獲取Item I的字符串來刪除它,因爲它不適用於主鍵。
這裏是我的代碼:
DatabaseHelper
public void deleteCours(String cours)
{
Open();
db.execSQL("DELETE from "+TABLE_COURS+" WHERE "+COLONNE_COURS+"='"+cours+"'");
db.close();
}
我的ListView和文本菜單
//ce Listener permet de détecter si on clique sur un élément de la liste
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//récupération de l'ID
long itemid= lv.getItemIdAtPosition(i);
//conversion en int
int id= (int)itemid;
//conversion en string du cours que je selectionne
String a =lv.getItemAtPosition(i).toString();
dbhelper.deleteCours(a);
//Intent pour naviguer de pag
/*Intent b = new Intent(AffichageCours.this,AffichageNotes.class);
//création d0un Bundle pour transférer des données
Bundle args = new Bundle();
args.putString("nom_cours",a);
args.putInt("id",id);
//insertion du Bundle dans l'Intent
b.putExtras(args);
//démarrage de l'intent
startActivity(b);*/
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId())
{
case R.id.supprimer:
// I WANT TO DELETE HERE !
return true;
default:
return super.onContextItemSelected(item);
}
}
}
所以,我需要得到的字符串項目,所以我可以在我的方法中使用它。我也想自動刷新我的列表視圖。
提前致謝!告訴我,如果你需要更多的代碼!
請顯示完整代碼 –
我編輯了我的問題 – David
我按照您的要求編輯完整的代碼我的問題! – David