Estoy tratando de implementar ListView con la funcionalidad Eliminar para eliminar elemento de la vista de lista. Pude borrar pero no pude actualizar la vista de lista después de eliminar un elemento de la base de datos.Android - Listview eliminar elemento y Actualizar
En realidad, haga clic en listitem, estoy mostrando AlertBox para "Eliminar" y "Cancelar" acción, al hacer clic en "Eliminar", el elemento debe eliminarse de la base de datos y debe actualizarse desde la vista de lista y lista. También he usado el método 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);
}
});
y el código para 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();
}
¿Qué tipo de adaptador estás usando? Si usa CursorAdapter, lo que describió debería funcionar. – Juhani
Las modificaciones no eliminan las preguntas porque no está contento con las respuestas, lo siento. – Will