2016-09-02 6 views
3

SwipeRefreshLayoutというウィジェットを使用して、誰かがビューをプッシュしたときにフラグメントをリフレッシュします。私が使用する必要が活動再作成するフラグメントをどのように再作成できますか?

SwipeRefreshLayout mSwipeRefreshLayout; 

public static LobbyFragment newInstance() { 
    return new LobbyFragment(); 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    final View view = inflater.inflate(R.layout.fragment_lobby, container, false); 


    receiver = new MySQLReceiver(); 

    rlLoading = (RelativeLayout) view.findViewById(R.id.rlLoading); 
    gvLobby = (GridView) view.findViewById(R.id.gvLobby); 

    updateList(); 

    mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.mSwipeRefreshLayout); 
    mSwipeRefreshLayout.setColorSchemeResources(R.color.pDarkGreen, R.color.pDarskSlowGreen, R.color.pLightGreen, R.color.pFullLightGreen); 
    mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
     @Override 
     public void onRefresh() { 

      getActivity().recreate(); 
     } 


    }); 


    return view; 

} 

をしかし、私は、ビューポケットベルが含まれている完全な活性を再作成する必要はありません、私は、フラグメントを再作成したいと思います。どうやってやるの?

+0

あなたのフラグメント作成コードを共有します – Nikhil

+0

フラグメント内のデータリストを更新したいからですか? –

+0

そうですね、グリッドビューを使用していて、そのグリッドビューを更新したいのです –

答えて

7

あなたは使用することができます。

getSupportFragmentManager().beginTransaction() 
       .replace(R.id.container, LobbyFragment.newInstance()).commit(); 

をごフラグメント再作成するには

注:フレームワークフラグメントのクラスを使用している場合は、あなたはgetFragmentManager()

を使用する必要があり、サポートフラグメントとAppCompatActivityを使用している場合 getSupportFragmentManager()です
+0

私は 'LobbyFragment.newInstance()'がnewInstanceの前に 'class'を見つけていないと思います。答えが – Rick77

+1

@ Rick77のメソッドコールなので、それはいいえクラスがありません。 –

+0

正しく、私の欠点:あなたの意図はLobbyFragment.class.newInstance()だと思っていました。 – Rick77

関連する問題