List的赋值和清空,很小的问题却不太容易排查。
写TreeView时有两个List保存数据,一个allNodes,一个treeNodes。
最初写的,发现界面并没有变化
treeNodes = allNodes;
更新数据时
treeNodes = new ArrayList<>();
treeNodes = filter(allNodes);
adapter.notifyDataSetChanged()
第一次修改,然后没数据了,界面空白
treeNodes = allNodes;
更新数据时
treeNodes.clear();
treeNodes = filter(allNodes);
adapter.notifyDataSetChanged()
第二次修改,界面依旧没变化
treeNodes.addAll(allNodes);
更新数据时
treeNodes = new ArrayList<>();
treeNodes = filter(allNodes);
adapter.notifyDataSetChanged()
最终,界面正常刷新
treeNodes.addAll(allNodes);
更新数据时
treeNodes.clear();
treeNodes = filter(allNodes);
adapter.notifyDataSetChanged()