データベースに追加した後、データベースから更新しようとしている ListView があります。
データがリストに取り込まれ、ListView にも取り込まれている間、ListView はリスト内のアイテムの数を更新していません。
したがって、リストが {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 は正しく更新されます。しかし、これはデータベースからリストビューを更新しないため、私が望む解決策ではありません。
私はこの問題に何時間も頭を悩ませてきました。