String[] temp = new String[adapter.getCount()];
for(int i = 0; i < adapter.getCount(); i++)
temp[i] = adapter.getItem(i).toString();
List<String> list = Arrays.asList(temp);
Collections.sort(list);
adapter.clear();
comment = new Comment();
for(int i = 0; i < temp.length; i++)
{
comment.setComment(temp[i]);
System.out.println("comment is: " + comment.getComment());
adapter.insert(comment, i);
System.out.println("adapter is: " + adapter.getItem(i));
}
for(int i = 0; i < adapter.getCount(); i++)
System.out.println(adapter.getItem(i));
上記のコードは、入力されたArrayAdapterのソートを実行します。私はSQLiteHelperとSQLデータベースを使用しているヘルパークラスです。Android:ArrayAdapter;コピーされたデータ。それをソートしました。 ArrayAdapterに書き戻します。表示が適切に更新されない
これで、ArrayAdapter内のすべてのデータを消去した後、データが辞書順並べ替え順に追加されることを確認します。
しかし、これを確認するための最後のforループに到達するまでに、ArrayAdapterはすべてのインデックスでリストの最後の項目を複製しました。これは奇妙で、私には意味をなさない。もちろんこれも画面に反映されます。
あなたは何が起こっているのかを理解するための支援を提供できますか?すべての変更が行われ
ありがとうございます。私はadapter.notifyDataSetChanged()を呼び出しましたが、それと同じ結果です:ArrayAdapterの最後の要素でListViewのビューを生成します。何が起きているのか分かりません。 ArrayAdapterの変更と同様に、データベースへの挿入とdeltionは完全に機能します。しかし、これを整理し、それを見通し内に表示しようとすることは困難であることが判明しています。 – user633658