【发布时间】:2016-04-09 20:42:56
【问题描述】:
我正在尝试直接更改数据源并将任何更改通知适配器。但是 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。您正在清除两者。 -
不,第一次吐司显示正确的结果。问题从 pgs.clear() 开始。
-
只是猜测,你试过 List
tmppgs = new ArrayList (pgs); ?
标签: java android arrays string android-recyclerview