FragmentAが一時停止しているため、FragmentAを直接更新することはできません。何ができることはFragmentAでFragmentB DialogFragmentを作成し、(多くstartActivityForResultのような)結果を得るためにtargetFragmentを使用
で、場所であなたはFragmentBを起動追加:
//RC_FRAGMENT_B is just an int constant to identify the result later
fragmentB.setTargetFragment(FragmentA.this, RC_FRAGMENT_B);
・実施:
あなたが完了しているFragmentB、でその後
public static final int RC_FRAGMENT_B = 1666;
public static final int RC_SUCCESS = 1888;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RC_FRAGMENT_B && resultCode == RC_SUCCESS) {
//change tab, etc.
}
}
、使用:
Fragment target = getTargetFragment();
if (target != null) {
//FragmentA.RC_SUCCESS result code needs to be a constant indicate to FragmentA what to do
target.onActivityResult(getTargetRequestCode(), FragmentA.RC_SUCCESS, getActivity().getIntent());
}
IフラグメントBをダイアログに変換できません。断片Bでは、それはユーザーからの金銭を請求しているWebビューです。フラグメントが見えるようになったときを知る方法はありますか? – Nitish
はい、onResumeメソッドですが、FragmentA.onResumeはFragmentB.onPauseの後まで発生しません(遅すぎます)。あなたはフラグメントダイアログの中にあなたが望むものを置くことができます。 AlertDialogと同じではありません –