sqlite eliminar la última fila de actualización no funciona
Tengo una opción de pulsación larga en mi vista de lista que eliminará la entrada db pulsada durante mucho tiempo. La eliminación realmente funciona. Si salgo de la aplicación y vuelvo a entrar, aparece mi mensaje "sin filas". Perfecto
En mi código, primero llamo al método DBadapter para eliminar una fila. Luego llamo a un método fetchallnotes en el dbadapter para actualizar mi vista de lista. Sin embargo, la última fila no desaparecerá en esta llamada de fetchallnotes. Solo en la llamada de fetchallnotes en mi onCreate.
Aquí está mi llamada al menú contextual que llama a mi método DBAdapter
db.deleteNote(info.id);
getSnapz();
Este es mi método my deleteNote en DBAdapter
public boolean deleteNote(long rowId) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
aquí está mi método getSnapz, que está en mi actividad Principal, que es donde está mi vista de lista
public void getSnapz(){
try {
Cursor c = db.fetchAllNotes();
//requery cursor incase the last entry has been deleted
c.requery();
startManagingCursor(c);
if(c.moveToFirst()){
String[] from = new String[]{DBAdapter.KEY_TYPE,DBAdapter.KEY_WEIGHT,DBAdapter.KEY_DATE,DBAdapter.KEY_PLACE};
int[] to = new int[]{R.id.typecol,R.id.weightcol,R.id.datecol,R.id.placecol};
SimpleCursorAdapter simple = new SimpleCursorAdapter(this, R.layout.snapz_row, c, from, to);
setListAdapter(simple);
}
} catch (Exception e) {
Log.e(TAG,e.toString());
}
}
Y aquí está mi método fetchAllNotes en DBAdapter
public Cursor fetchAllNotes() throws Exception{
Cursor c = db.query(DATABASE_TABLE, new String[] {KEY_ROWID,KEY_URI, KEY_DATE,KEY_TYPE,KEY_WEIGHT,
KEY_PLACE},
null, null, null, null, null );
return c;
}