วิธีที่ง่ายที่สุดในการส่งข้อมูลกลับคือ setArgument () ตัวอย่างเช่นคุณมี fragment1 ซึ่งเรียก fragment2 ซึ่งเรียก fragment3, fragment1 -> framgnet2 -> fargment3
ในส่วนย่อย 1
public void navigateToFragment2() {
    if (fragmentManager == null) return;
    Fragment2 fragment = Fragment2.newInstance();
    String tag = "Fragment 2 here";
    fragmentManager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
            .add(R.id.flContent, fragment, tag)
            .addToBackStack(null)
            .commitAllowingStateLoss();
}
ใน fragment2 เราเรียกว่า fragment3 ตามปกติ
private void navigateToFragment3() {
    if (fragmentManager == null) return;
    Fragment3 fragment = new Fragment3();
    fragmentManager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
            .replace(R.id.flContent, fragment, tag)
            .addToBackStack(null)
            .commit();
}
เมื่อเราทำภารกิจใน fragment3 เสร็จแล้วเราจะเรียกสิ่งนี้ว่า:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
if (fragmentManager == null) return;
fragmentManager.popBackStack();
Bundle bundle = new Bundle();
bundle.putString("bundle_filter", "data");
fragmentManager.findFragmentByTag("Fragment 2 here").setArguments(bundle);
ตอนนี้ใน fragment2 เราสามารถเรียกอาร์กิวเมนต์ได้อย่างง่ายดาย
@Override
public void onResume() {
    super.onResume();
    Bundle rgs = getArguments();
    if (args != null) 
        String data = rgs.getString("bundle_filter");
}
     
              
onActivityResultเมธอดของพาเรนต์แฟรกเมนต์ได้หากต้องการ