Android ListView删除数据但ListView无法更新

时间:2018-09-16 20:45:22

标签: android android-studio listview

我删除了SQLi中的数据,但listview没有更新。我必须打开活动agian,然后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);

        }
    });
}

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

1 个答案:

答案 0 :(得分:1)

  

我删除了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();

}