Sto cercando di implementare ListView con la funzionalità Elimina per eliminare l'elemento dalla listview. Sono riuscito a cancellare ma non è riuscito ad aggiornare la listview dopo la cancellazione di un oggetto dal database.Android - Listview elimina l'elemento e Aggiorna
In realtà, fare clic su listitem, sto visualizzando AlertBox per l'azione "Cancella" e "Annulla", facendo clic su "Elimina", l'elemento deve essere rimosso dal database e, inoltre, dal listview e listview deve essere aggiornato. Ho anche usato il metodo notifyDataSetChanged()
.
lview = (ListView) findViewById(R.id.lview);
adapter = new ListView_CustomAdapter(this, listitemDisplay);
lview.setAdapter(adapter);
lview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
Show_Alert_box(v.getContext(),"Please select action.",position);
}
});
e il codice per Show_Alert_box:
public void Show_Alert_box(Context context, String message,int position)
{
final int pos = position;
final AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle(getString(R.string.app_name_for_alert_Dialog));
alertDialog.setButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try
{
db.open();
String[] whereArgs={String.valueOf(pkID)};
return db.delete(DATABASE_TABLE_4,"pk_pkID == ?",whereArgs);
adapter.notifyDataSetChanged();
db.close();
}
catch(Exception e)
{
}
} });
alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
} });
alertDialog.setMessage(message);
alertDialog.show();
}
Che tipo di adattatore stai usando? Se stai usando CursorAdapter, quello che hai descritto dovrebbe funzionare. – Juhani
Le mod non eliminano le domande perché non sei soddisfatto delle risposte, mi dispiace. – Will