安卓列表视图删除数据,但列表视图不更新



>我删除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 in 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);
}
});
}

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

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

最新更新