Android FragmentActivityにFragmentを埋め込み、Listview notifyDataSetChanged()を更新しない

1229 ワード

問題のように、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;
	}
なぜこのように解決できるのか分からないので、知っていることがあれば教えてください.