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