gpt4 book ai didi

android - fragment 中的 onActivityResult 未称为 childFragment

转载 作者:行者123 更新时间:2023-11-30 01:01:26 24 4
gpt4 key购买 nike

我有HomeActivity在 viewpager 中包含许多 fragment 。现在我有 2 个 fragment

  1. AddBalanceFragment

  2. AddSubscriptionFragment

我调用 onActivityResult来自两个 fragment 并且都具有相同的代码。 onActivityResult 先到HomeActivity 的onActivityResult使用 AddBalanceFragment 工作正常它转到 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) {
}
}

添加订阅 fragment .java

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


if (requestCode == 1001) {
if (resultCode == -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);
}
}


}
}


}

关于android - fragment 中的 onActivityResult 未称为 childFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com