Pass data between fragments

2019-01-19 20:04发布

问题:

I want to transfer the user ID from the main Activity to a fragment.

So in the main activity, I do:

 Fragment fragment = new Fragment();
 final Bundle bundle = new Bundle();
 bundle.putString("id_User", id);
 Log.i("BUNDLE", bundle.toString());
 fragment.setArguments(bundle); 

And in the log I can see

BUNDLE : Bundle[{id_User=1}]

In the fragment, I test it in onCreate

Bundle arguments = getArguments();
if (arguments != null)
{
Log.i("BUNDLE != null","NO NULL");
} else {
Log.i("BUNDLE == null","NULL");
}

And I have

BUNDLE == null: NULL

So the transfer is successful, but how can I receive the data in fragment, please?

回答1:

You can use:

 Bundle args = getArguments();
 if (args  != null && args.containsKey("id_User"))
     String userId = args.getString("id_User");


回答2:

Just use:

String User = getArguments().getString("id_User", "Default Value");

The default value you supply will be returned if the key you request does not exist.