1

HomeActivityには、ビューページに多くのフラグメントが含まれています。今、私は両方の断片からonActivityResultを呼び出していますし、両方が同じコードを持つ2つの断片onActivityResultがchildFragmentとして呼び出されていない

  1. AddBalanceFragment

  2. AddSubscriptionFragment

を持っています。最初はAddBalanceFragmentで細かい作業をHomeActivityのonActivityResultに行くonActivityResultそれはaddBalanceFragmentのonActivityResultに行くが、私はAddSubscriptionFragment と同じにしようとしているとき、それはまた、AddBalanceFragmentのonActivityResult

//nestedfragments contains 4 fragments 3rd is addBalanceFragment and 4th AddsubsprtionFragment 


// HomeActivity.java 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.e(TAG, "onActivityResult"); 
    // notifying nested fragments (support library bug fix) 
    final FragmentManager childFragmentManager = getSupportFragmentManager(); 

    if (childFragmentManager != null) { 
     final List<Fragment> nestedFragments = childFragmentManager.getFragments(); 

     if (nestedFragments == null || nestedFragments.size() == 0) return; 

     for (Fragment childFragment : nestedFragments) { 
      if (childFragment != null && !childFragment.isDetached() && !childFragment.isRemoving()) { 

       childFragment.onActivityResult(requestCode, resultCode, data); 
      } 
     } 
    } 
} 

AddBalanceFragment.java

public void onActivityResult(int requestCode, int resultCode, Intent data) { 


    if (requestCode == 1001) { 
     if (resultCode == -1) { 
     } 
     } 

AddSubscriptionFragmentに行きます。 Java

public void onActivityResult(int requestCode, int resultCode, Intent data) { 


    if (requestCode == 1001) { 
     if (resultCode == -1) { 
     } 
     } 

答えて

0

はあなたがフラグメントのonActivityResultメソッドの

super.onActivityResult(requestCode, resultCode, data); 

を呼び出していることを確認することができます。

あなたも、私は静的変数の状態でそれを得た活動

+0

私は 'super.onActivityResult(requestCode、resultCodeが、データ)を呼び出しています; 'HomeActivityのonActivityResultでは、フラグメントのonActivityResultにありません –

+0

なぜフラグメントで呼び出さないのですか? – Deliganli

1

に手動でこれらのメソッドを呼び出す必要はありません:)

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.e(TAG, "onActivityResult HomeActivity"); 
    // notifying nested fragments (support library bug fix) 

    final List<Fragment> nestedFragments = getSupportFragmentManager().getFragments(); 
    for (int i = 0; i < nestedFragments.size(); i++) 
     if (nestedFragments == null || nestedFragments.size() == 0) return; 

    for (Fragment childFragment : nestedFragments) { 
     if (childFragment != null && !childFragment.isDetached() && !childFragment.isRemoving()) { 
      Log.e(TAG, "childFragment :" + childFragment.toString()); 
      // Log.e(TAG, "childFragment :"+childFragment.getParentFragment().getTag()); 

      if (state.equalsIgnoreCase("AddBalance")) { 
       if (childFragment.toString().contains("AddBalanceFragment")) { 
        childFragment.onActivityResult(requestCode, resultCode, data); 
       } 
      } 
      if (state.equalsIgnoreCase("AddSubcription")) { 
       if (childFragment.toString().contains("AddSubscriptionFragment")) { 
        childFragment.onActivityResult(requestCode, resultCode, data); 
       } 
      } 


     } 
    } 


} 
関連する問題