データソースを直接変更し、変更をアダプターに通知しようとしています。しかし、addAll()は私のリストを更新しません。私のコードではすべてがOKだが、実行中ではないようだ。コードを修正するのを手伝ってください。前もって感謝します。リスト<String> addAll()メソッドが追加されていません
List<String> pgs = myClass.getPgs();
List<String> tmppgs = pgs;
/*
.
lots of code for string processing which results in >> String content for each i
.
*/
for (int i = 0; i < tmppgs.size(); i++) {
tmppgs.set(i, content);
}
Toast.makeText(getActivity(),String.valueOf(tmppgs.size()), Toast.LENGTH_LONG).show();
// Toast shows desired result which is OK.
pgs.clear();
pgs.addAll(tmppgs);
Toast.makeText(getActivity(),String.valueOf(pgs.size()), Toast.LENGTH_LONG).show();
//Unexpectedly shows zero
mAdapter.notifyDataSetChanged();
}
'tmppgs == pgs'です。あなたは両方をクリアしています。 – Marvin
いいえ、最初のトーストは正しい結果を示します。問題はpgs.clear()から始まります。 – infiniteLoop
ちょっと試しましたか?リスト tmppgs = new ArrayList (pgs); ? –