2016-07-13 12 views
1

ショッピングカートの一部にログインボタンがあります。このボタンをクリックすると、サインインフラグメントにリダイレクトされます。また、私はサインインの部分にログインするボタンを持っています。このボタンをクリックすると、getSupportFragmentManager().popBackStackImmediate();メソッドが呼び出されます。このメソッド呼び出しでショッピングカートの一部を更新したいと思います。popBackStackImmediate()が呼び出されたときにフラグメントをリフレッシュする方法は?

どうすればいいですか?

答えて

0

フラグメントをリフレッシュするには、フラグメントにsetUserVisibleHintメソッドをオーバーライドします。あなたのフラグメントが画面上に見えるときはいつでも、このrefreshDataメソッドは呼び出しです。

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if(isVisibleToUser){ 
      RefreshData() ; 
     } 
    } 
0

それはShoppingCartFragment.onStart()をオーバーライドすることで、再び見えるようになったときにあなたはショッピングカートFragmentをリフレッシュすることができます。 lifecycleFragmentsを参照してください。

public class MyFragment extends Fragment { 
    @Override 
    public void onStart() { 
     super.onStart(); 
     updateUi() 
    } 
} 

あなたがバックスタックはLoginFragmentを示すときFragmentTransaction.replace()を使用することによってポップされたときにShoppingCartFragmentが再作成されることを強制することができます。

+0

これはどのように使用できますか?ありがとうございました。 –

+0

フラグメントがgetSupportFragmentManager()。popBackStackImmediate();によって呼び出されたときに、onStartメソッドが呼び出されていません。 –

+0

ああ、私はあなたが 'LoginFragment'を追加していることを理解しています。代わりに、 'ShoppingCartFragment'を' LoginFragment'に置き換えてください。 – thaussma

関連する問題