Reputation: 543
I'm trying to pass variables from my main activity to a fragment. This is how i'm attempting to do it:
This is in my Activity:
Bundle args = new Bundle ();
args.PutString ("header", header);
args.PutString ("content", content);
args.PutString ("footer", header);
args.PutString ("imageLocation", imageLocation);
exhibitMainFragment.Arguments = args;
FragmentManager.BeginTransaction ()
.Replace (Resource.Id.main_view, exhibitMainFragment)
.AddToBackStack (null)
.Commit ();
This is in my Fragment:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.MuseumInformation, null);
content = this.Activity.Intent.GetStringExtra ("content");
header = this.Activity.Intent.GetStringExtra ("header");
footer = this.Activity.Intent.GetStringExtra ("footer");
imageFilePath = this.Activity.Intent.GetStringExtra ("imageLocation");
But none of the variables are being passed (they are all empty in the fragment). I'm clearly making a fundamental error here. Can somebody tell me what it is please. Or show me a better way to pass the data across.
Thanks.
Upvotes: 6
Views: 5654
Reputation: 2287
In the Activity
Bundle mybundle = new Bundle();
mybundle.PutString("MyDataTag", "Hello");
FragmentTransaction fragmentTransaction = FragmentManager.BeginTransaction();
var myFragment = new VerifyReportFragment();
myFragment .Arguments = mybundle;
in the Fragment OnCreateView
String stringData= Arguments.GetString("MyDataTag");
Upvotes: 3
Reputation: 543
This is how i did it:
content = Arguments.GetString("content");
header = Arguments.GetString ("header");
footer = Arguments.GetString("footer");
imageFilePath = Arguments.GetString ("imageLocation");
Upvotes: 3