Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass Bundle from Fragment to Fragment

I am using fragments in my application. This is my first fragment that simply inflate a xml file:

public class FragmentA extends SherlockFragment {     Context myContext,appContext; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,         Bundle savedInstanceState) {     // TODO Auto-generated method stub     myContext = getActivity();     appContext=getActivity().getApplicationContext();     arguments = getArguments();     doctor_id=arguments.getInt("doctor_id");     userType=arguments.getString("userType");     return inflater.inflate(R.layout.left_panel, container,false); } 

and this is the left_panel .xml, that contains a fragment:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >     <fragment         android:id="@+id/titles"         android:layout_width="wrap_content"         android:layout_height="match_parent"         android:layout_weight="1"         class="com.example.sample.ListFrag" />  </LinearLayout> 

This is my ListFrag class:

public class ListFrag extends Fragment  {     Context myContext,appContext;     @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container,             Bundle savedInstanceState) {         // TODO Auto-generated method stub         layoutView = inflater.inflate(R.layout.activity_doctor_list,container);         myContext = getActivity();         appContext=getActivity().getApplicationContext();         arguments=getArguments();         int doctor_id=arguments.getInt("doctor_id"); } } 

I don't know how to pass Bundle arguments from FragmentA to ListFrag.

like image 772
Vikky Avatar asked Jun 12 '13 10:06

Vikky


2 Answers

In your FragmentA fragment set the bundle as the argument.

Bundle args = new Bundle(); args.putInt("doctor_id",value);     ListFrag newFragment = new ListFrag (); newFragment.setArguments(args); 

In your ListFrag fragment get the bundle as

Bundle b = getArguments(); int s = b.getInt("doctor_id"); 
like image 115
Tarun Avatar answered Sep 17 '22 23:09

Tarun


Fragment to Fragment set and get Argument:

Start Activity :

     int friendId = 2; //value to pass as extra       i = new Intent(firstActivity, SecondActivity.class);      i.putExtra("friendsID", friendId);      firstActivity.startActivity(i); 

SecondActivity:

     Fragment_A mFragment_A = new Fragment_A();      mFragment_A.setArguments(getIntent().getExtras()); 

Fragment_A:

    Bundle bundle = new Bundle();     String Item = getArguments().getString("friendsID");     bundle.putInt("friendsID", Integer.parseInt(Item));      // code      Fragment_B mFragment_B = new Fragment_B();     mFragment_B.setArguments(bundle); 

Fragment_B:

    Bundle bundle = getArguments();     int value = bundle.getInt("friendsID");      Log.e("value Fragment get Argument ", "friendsID :" + value); 

this work for me,try this may be this sample help you.

like image 37
sherin Avatar answered Sep 19 '22 23:09

sherin