Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pass data between two fragments without using activity

I want to pass data between two fragments without using activity and fragment activity.

I don't want to pass data between fragments using activity like this : Communicating with Other Fragments

Below is my scenario :

I have one Parent fragment and inside that there are two child fragments.Now my need is to pass data between these two fragments.How to achieve this?

I looked into this : Event Bus but not getting working example for fragments.

Is there any other alternative to pass data between fragments?

Any help will be appreciated.

Edited as per InnocentKiller's answer :

In FragmentOne , I have implemented :

    FragmentTwo = new FragmentTwo();
    Bundle bundle = new Bundle();
    bundle.putString("Hello", "My name is Siddharth");
    fragment.setArguments(bundle);

In FragmentTwo, I have implemented :

    Bundle bundle = this.getArguments();
    String myInt = bundle.getString("Hello","Test");
    mStartTripButton.setText(myInt);
like image 759
Siddharth_Vyas Avatar asked Nov 28 '22 13:11

Siddharth_Vyas


1 Answers

Best Way to exchange data between activity/fragments, fragment/fragment/, activity/activity, class/ class, make a common singleton class like:

public class DataHolderClass {
private static DataHolderClass dataObject = null;

private DataHolderClass() {
    // left blank intentionally
}

public static DataHolderClass getInstance() {
    if (dataObject == null)
        dataObject = new DataHolderClass();
    return dataObject;
}
private String distributor_id;;

 public String getDistributor_id() {
    return distributor_id;
 }

 public void setDistributor_id(String distributor_id) {
    this.distributor_id = distributor_id;
 }
}

now set from anywhere(Fragment, activity, class) at any event before you move to new screen

DataHolderClass.getInstance().setDistributor_id("your data");

now get anywhere(Fragment, activity, class)

 String _data = DataHolderClass.getInstance().getDistributor_id();
like image 69
Pankaj Arora Avatar answered Dec 15 '22 14:12

Pankaj Arora