제목에서 알 수 있듯이 길게 누르면 데이터베이스에서 목록의 항목을 삭제하는 옵션이 있습니다. 코드를 실행할 때 아무 일도 일어나지 않고 "포커스 획득을 무시하고 이미 포커스가있는 창"이라는 경고 메시지가 나타납니다.android - 컨텍스트 메뉴를 사용하여 데이터베이스에서 항목 삭제
@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)
문제를 만들어 여기에 는 코드 조각인가? 하나 더 옵션을 시도했습니다. 목록 항목의 색인을 sindex에 저장했습니다. 그래서 db.deleteIP(sindex)
을 호출하면 효과가있었습니다. 그러나 그것은 doesnt한다!
도와주세요! 감사합니다. .
데이터가 db에서 제거되었는지 확인 했습니까? prolly 예,하지만 어댑터를 새로 고치지 않았습니다 – Selvin
데이터가 제거되었는지 어떻게 확인해야합니까? – Umang
자신 만의 코드를 이해하지 못하셨습니까? deleteIP이 반환하는 것을 확인하거나 행이 아직 거기에 있는지 확인하기 위해 응용 프로그램을 다시 실행하십시오. – Selvin