我有一个 ListView,我试图在添加到数据库后从数据库中更新它。
当数据进入 List 并进入 ListView 时,ListView 不会更新 List 中的项目数。
因此,如果我的列表是 {1, 3, 6, 8, 12} 将 4 添加到列表并排序后,我的列表视图显示 {1, 3, 4, 6 ,8} 未显示第 6 项 12。
当我向列表中添加更多内容时,这个问题变得更加复杂,如果我要添加另一个项目,这个 ListView 仍然只会显示前 5 个。
这是有问题的代码区域
TourGroup group = data.getParcelableExtra(TOURGROUP);
DatabaseHandler db = new DatabaseHandler(this);
db.addGroup(group);
mainList = db.getAllGroups();
db.close();
Collections.sort(mainList, new CustomComparator());
ListView groupList = (ListView) findViewById(R.id.groupList);
ArrayAdapter adapter = (ArrayAdapter) groupList.getAdapter();
adapter.notifyDataSetChanged();
如果我更换
mainList = db.getAllGroups();
和
mainList.add(group);
然后 ListView 正确更新。但这不是我想要的解决方案,因为这不会从数据库更新列表视图。
几个小时以来,我一直在努力解决这个问题,任何帮助将不胜感激。