android - 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);
}
});
}
删除数据后如何更新列表视图?
解决方案
我删除 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();
}
推荐阅读
- google-cloud-storage - 如何识别数据流作业中已处理的文件
- javascript - chart.js 定位器在哪里使工具提示向下移动
- html - h4 边距的 CSS 无效属性值
- c# - 如果调用(运行所有测试),则单元测试异步等待方法断言失败,但如果我一个接一个地运行,则测试通过
- c# - 无法按文本值检查元素
- matlab - 如何使用计算机视觉根据位置坐标找到足球场的角落?
- javascript - 画廊图片未显示他们的订单
- amazon-web-services - 同一个域名的两个变体
- aframe - 如何在 .map 中正确使用 aframe-react 事件?
- sql-server - 在 SQL Server Express 中重命名列 - 实体框架找不到它