2017-02-27 4 views
0

ここに私の状況です:フラグメントをリロードするには?

私は断片からデータベースからデータを取り出していますが、結果は非同期です。だから私はデータベースから結果を取得した後にビューをリロードしたい。

は、私はこの1つのような「フラグメント取引」との多くの方法を試してみた:

private void reloadView(ViewGroup container){ 
    Fragment currentFragment = getActivity().getSupportFragmentManager().findFragmentById(container.getId()); 
    if (currentFragment instanceof StatsFragment) { 
     FragmentTransaction fragTransaction = (getActivity()).getSupportFragmentManager().beginTransaction(); 
     fragTransaction.detach(currentFragment); 
     fragTransaction.attach(currentFragment); 
     fragTransaction.commit();} 

} 

あなたがそれを行うには良い方法があると思いますか?アダプターなどを置くことはできますか? (私はそれをやりたいと思っていたが、断片的なリストビューのためのアダプタについてのチュートリアルをすべて見つけた)。

ありがとうございました!これを行うには

+0

[こちら](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html)をチェックしてください。 'ListView'を' RecycleView'に置き換えてください。 – FiN

+0

あなたのフラグメント内で、 'AsyncTask'の' onPostExecute() 'の中に' updateView() 'を入れてください。 –

+1

重い仕事をする代わりにアダプタを更新することをお勧めします。 ListViewやRecycleViewは新しいデータをリストに更新し、 'adapter.notifydatasetchanged()'を使うだけです。 –

答えて

0

複数の方法:

  1. Android data binding library

    を見てみましょう更新したい何を追跡して、単一のコンポーネント(TextViews、リストビューなど)

  2. を更新

私は個人的にすべての場所でデータバインディングを使用できますが、それは単に驚くべきものです。

関連する問題