首页 > 解决方案 > Android listview删除数据但listview不更新

问题描述

我删除了 SQLi 中的数据,但 listview 没有更新。我必须先打开活动,然后列表视图才会更新。

这是功能删除数据。

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();

}

这是 OnCreate 中的函数 OnItemClick。

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);

        }
    });
}

删除数据后如何更新列表视图?

标签: androidandroid-studiolistview

解决方案


我删除 SQLi 中的数据但ListView不更新。我必须再次打开活动,然后ListView才会更新。

是的,您从 SQLite 中删除项目而不是从ListView.

ListView删除数据后如何更新?

您可以重新创建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();

}

推荐阅读