Costruire nell'ambito dell'Helper la funzione che cancella un record dalla tabella del database.
//funzione che cancella un record dalla tabella tblnomi del database public void cancella(String s){ SQLiteDatabase db=this.getWritableDatabase(); db.delete("tblnomi","nome=?",new String[]{s}); }Adesso la uso:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { helper.cancella("Giuseppe"); return true; } });Al long click di qualunque elemento della ListView dovrei avere la cancellazione del record il cui campo "nome" equivale a "Giuseppe".
Proviamolo...
Sì, me lo ha cancellato.
Ho dimenticato di ricaricare l'adapter, però:
Procedo (con un altro nome perché di Giuseppe ce n'era uno solo).
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { helper.cancella("Giovanni"); Cursor c=helper.queryTotale(editNome.getText().toString(),editCognome.getText().toString()); crs=myCursorAdapter.swapCursor(c); return true; } });Sì, funziona.
Ora devo però rendere la cosa specifica: devo risalire al nome riportato nell'elemento della listView.
Ecco, dopo aver trovato e sperimentato il modo di accedere alle textView in cui sono riportati nome e cognome, modifico la funzione di helper in modo da includere anche il cognome:
//funzione che cancella un record dalla tabella tblnomi del database public void cancella(String n, String c){ SQLiteDatabase db=this.getWritableDatabase(); db.delete("tblnomi","nome=? and cognome=?",new String[]{n,c});...e riscrivo la funzione in Main:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { TextView txtNome=(TextView)view.findViewById(R.id.txtNome); TextView txtCognome=(TextView)view.findViewById(R.id.txtCognome); helper.cancella(txtNome.getText().toString(),txtCognome.getText().toString()); Cursor c=helper.queryTotale(editNome.getText().toString(),editCognome.getText().toString()); crs=myCursorAdapter.swapCursor(c); return true; } });Vediamo se funziona...
Funziona egregiamente!!! Obiettivo raggiunto!
Nessun commento:
Posta un commento