Android listview удаляет данные, но listview не обновляется

Я удаляю данные в SQLi, но список не обновляется. Мне нужно открыть активность, после чего список обновится.

Это функция удаления данных.

private void delData(int position) {


    cursor.moveToPosition(position);
    String rowId = cursor.getString(0);
    db.delete(DBHelper.TABLE_NAME, "_id = ?", new String[]{rowId});

    cursor.requery();
    adapter.notifyDataSetChanged();

}

Это функция OnItemClick в OnCreate.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_driver);

    dbHelper = new DBHelper(DriverActivity.this);

    lv_driver=(ListView)findViewById(R.id.lv_driver);
    lv_driver.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            delData(i);

        }
    });
}

Как обновить список после удаления данных?

Вы должны удалить данные даже из базы данных вашего списка.

ArbenMaloku 16.09.2018 22:52
1
1
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I delete data in SQLi but ListView not update. I have to open activity again then ListView will update.

Да, это нормально, что вы удаляете элемент из SQLite, а не со своего ListView.

How to update ListView after delete data ?

Вы можете воссоздать ListView или просто удалить свой элемент adapter.remove(position);

Пример :

private void delData(int position) {
    cursor.moveToPosition(position);
    String rowId = cursor.getString(0);
    db.delete(DBHelper.TABLE_NAME, "_id = ?", new String[]{rowId});   
    cursor.requery();
    adapter.remove(position);
    adapter.notifyDataSetChanged();

}

Спасибо. Мне нужно удалить в List <Map <String, String >> lst.

user572575 16.09.2018 23:37

Другие вопросы по теме