목록 항목 onLongClick
을 사용하여 단일 행을 삭제하려고 시도하지만 행을 삭제하거나 때로는 삭제하지 않는 경우가 있습니다. 어쩌면 나는 잘못된 이드를 전달할 것이고 실제로 문제가 무엇인지 알지 못한다.단일 SQLite 행 삭제
나는 몇 가지 코드를 시도했으며 지난 2 일 동안 노력했지만이 문제를 해결할 수 없습니다.
아래 코드는 제 코드입니다.
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, final long id) {
AlertDialog.Builder alert = new AlertDialog.Builder(FavouriteListActivity.this);
alert.setMessage("Do you want to unfavorite selected item ?");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("===========", "Position === " + position);
Log.i("===========", "long id === " + id);
deleteMethod(id);
showFavouriteList();
dialog.cancel();
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alert.show();
return true;
}
그리고 deleteMethod
private void deleteMethod(long Id) {
try {
long shId = Id + 1;
SQLiteDatabase db = OpenHelper.getDataHelper(getApplicationContext());
String query = "DELETE FROM " + LocalDatabase.FAVORITE_LIST.TABLE_FAVOURITE_LIST + " WHERE " + LocalDatabase.FAVORITE_LIST.FAVOURITE_LIST_ID + " = " + shId;
Log.i("QUERY", "" + query);
db.execSQL(query);
db.close();
} catch (Exception e) {
e.printStackTrace();
}
}
그래도, 어떤 오류가 발생하고 있지 않다, 그러나
그것의 모든 올바른, 난 그냥이 모든 것을 피하기 위해 단지 UR 테스트 장치에서 응용 프로그램을 UNISTALL 및 AGA를 실행하면 응용 프로그램의 버전을 업데이트하지 통해 UR dbhelper 클래스의의 OnUpdate 방법을 업데이트하지 않은 것 같아요 에서. – HAXM
@HAXM, 빠른 답장을 보내 주셔서 감사합니다. 나는 너무 많은 것을 시도했다. 그러나 아무 것도 작동하지 않는다. .. 나는 가능한 모든 방법으로 데이터베이스와 데이터를 제거하면서 버전을 업데이트하려고 시도했다. ... – user3686177
예외가 기록되지 않습니까? 백그라운드 스레드에서 sql을 실행 해 보셨습니까? listview 새로 고침 논리가 맞습니까? DB에서 다시로드되는 어댑터입니까? –