Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass data from a fragment to a dialogFragment

Tags:

I know that this was asked before, but I dont quite understand how to implement it. I have a fragment "myFragment" in which I create an object of a "myDialogueFragment". I want to pass some value to the myDialogueFragment when I invoke it from the myFragment. I have an integer num, that I want to pass to the myDialogueFragment and store that number in a local database along with some other info from the myDialogueFragment.

I might be mistaken, but all the code I have seen is about sending data from the myDialogueFragment back to the myFragment which is not what I really want.

static MyDialogFragment newInstance(int num) {  MyDialogFragment f = new MyDialogFragment();  // Supply num input as an argument. Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args);  return f; }    @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     mNum = getArguments().getInt("num");     ... } 

So, this code gets the arguments within the myFragment onCreate() method. I want to sent the arguments within the myFragment() and receive them in the myDialogueFragment.

How can I achieve that?

like image 352
phedon rousou Avatar asked Jul 12 '13 19:07

phedon rousou


People also ask

How do you pass arguments to DialogFragment?

you can set your args. class IntervModifFragment : DialogFragment(), ModContract. View { companion object { fun newInstance( plom:String,type:String,position: Int):IntervModifFragment { val fragment =IntervModifFragment() val args = Bundle() args. putString( "1",plom) args.

How do you pass data between fragments in Kotlin?

Step 1 − Create a new project in Android Studio, go to File ⇉ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml. Step 3 − Create two FragmentActivity and add the codes which are given below.


1 Answers

What you need is to setArguments on the fragment as follows:

Bundle args = new Bundle(); args.putString("key", "value"); DialogFragment newFragment = new YourDialogFragment();   newFragment.setArguments(args); newFragment.show(getSupportFragmentManager(), "TAG"); 

All you have to do now, is catch those arguments in your fragment and use them...

AND IN THE DIALOG FRAGMENT YOU READ IT LIKE THIS...

Bundle mArgs = getArguments(); String myValue = mArgs.getString("keyUsed to send it..."); 
like image 142
Martin Cazares Avatar answered Nov 01 '22 09:11

Martin Cazares