Я пытаюсь реализовать функцию ListView with Delete для удаления элемента из списка. Мне удастся удалить, но не удалось обновить список после удаления элемента из базы данных.Android - Listview удалить элемент и обновить
Фактически, нажмите на listitem, я отображаю AlertBox для действия «Удалить» и «Отменить», при нажатии «Удалить» элемент должен быть удален из базы данных, а также из списка, а список должен быть обновлен. Я также использовал метод 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);
}
});
и код 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();
}
Какой адаптер вы используете? Если вы используете CursorAdapter, то то, что вы описали, должно работать. – Juhani
Моды не удаляют вопросы, потому что вы недовольны ответами, извините. – Will