-1

I am developing an app in which I have used bottom navigation bar so for that I had to use fragments. In my fragments, I implemented Recycler view. So My question is when I click on an item of recycler view, how can I navigate to another fragment (which is in a different item of the bottom navigation bar) and how can I transfer the data between two fragments. Please Help.

Dhruv Tyagi
  • 814
  • 1
  • 9
  • 28
Rajat Mittal
  • 413
  • 5
  • 19
  • Possible duplicate of [How to transfer some data to another Fragment?](https://stackoverflow.com/questions/7149802/how-to-transfer-some-data-to-another-fragment) – Dhanumjay Jun 27 '17 at 10:34

3 Answers3

2

during onClick() pass data through bundle

like that

FragmentManager mFragmentManager;
FragmentTransaction mFragmentTransaction;
                    Bundle bundleobj = new Bundle();
                    bundleobj.putCharSequence("key", data);


                    Fragment2 fragobj = new Fragment2();
                    fragobj.setArguments(bundleobj);
                    mFragmentTransaction.addToBackStack(null);
                    mFragmentTransaction.replace(R.id.containerView, fragobj).commit();

In Fragment2 class:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle bundle =getArguments();

    if(null!=bundle) {
        myData=bundle.getCharSequence("key");


    }
}
Dhruv Tyagi
  • 814
  • 1
  • 9
  • 28
1

In first Fragment..

Fragment fragment = new EditExamFragment();
            FragmentManager fm = getActivity().getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            ft.replace(R.id.content_frame, fragment);
            ft.commit();

            Bundle bundle = new Bundle();
            bundle.putString("branch_id", mDataset.get(position).getiBranchId());

          bundle.putString("exam_id",mDataset.get(position).getiExamId());
            fragment.setArguments(bundle);

In Second Fragment for fetching values try below code;

String branch_id, exam_id ;
final Bundle bundle = this.getArguments();
if (bundle != null) {
    branch_id  = bundle.getString("branch_id");           
    exam_id  = bundle.getString("exam_id");
}
Vishal Vaishnav
  • 3,346
  • 3
  • 26
  • 57
1

Add below code after event listener in fragment1

SecondFragmentName secondFragmentName = new SecondFragmentName();
                Bundle args = new Bundle();
                args.putString("key", "value");
                secondFragmentName.setArguments(args);
                getFragmentManager().beginTransaction().replace(R.id.content_frame, secondFragmentName).addToBackStack("Some string").commit();

To get value in Fragment2

String message = getArguments().getString("key");
Raveendra
  • 141
  • 2
  • 6