Android FragmentActivity 内嵌Fragment,Listview notifyDataSetChanged() 不刷新

如题,如果你在做Android开发时, ListView死活不刷新,我总结一下一般不刷新的几个情况:

1、数据源木有在UI线程改变,这个时候,你就需要通过Handler发送消息,修改数据源;

2、你修改的不是Adapter的数据源,我建议你在写Adapter的时候这样传输数据:


	ArrayList list=new ArrayList<>();
	public RankAdapter(List list){
		this.list.addAll(list);
		this.tag=tag;
	}

	public void setList(List list) {
		this.list.clear();
		this.list.addAll(list);
	}
	public void addList(List list) {
		this.list.addAll(list);
	}
3、而我刚刚遇到的问题比较特殊,我使用了 FragmentActivity 内嵌Fragment,Fragment又含有Listview ,然后执行notifyDataSetChanged()死活不刷新,解决方法肯定不是上面的,要不然也木有这篇日志,看代码吧:

	View view;
	@Override
	public View onCreateView(LayoutInflater inflater,
			@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {		
		if (view == null) {//
			view = inflater.inflate(R.layout.fragment_rank, container, false);
		}
		ViewGroup parent = (ViewGroup) view.getParent();
		if (parent != null) {
			parent.removeView(view);
		}
		return view;
	}
我不知道为什么这样可以解决,有知道的告诉一下我。

你可能感兴趣的:(android)