TabFragments FragmentPageAdapter Parcelable Bundle

时间:2016-07-21 16:28:15

标签: android xamarin tabs fragment parcelable

我正在开发一个Xamarin Android应用程序,我有一个主要活动和一个包含四个片段的Tab Fragment。从MainActivity我发送了一个parcelable对象到Tab Fragment,通过参数(正如我所说,它包含4个片段)。 问题是我需要将此对象发送到片段1,此片段将对象发送到片段2,依此类推。这些片段中的每一个都需要更改同一对象的某些不同属性。它就像一个向导形式,每个标签都是一个步骤。 我该怎么做?如何将对象从片段发送到下一个片段?

我希望我说清楚。 提前谢谢。

以下是一些代码行:

//In the MainActivity
private void ListItemClicked(int position)
{
 //this way we don't load twice, but you might want to modify this a bit.
   if (position == oldPosition)
      return;

  oldPosition = position;

 Android.Support.V4.App.Fragment fragment = null;
 switch (position)
 {
    case 0:
    fragment = FragmentHome.NewInstance();
    break;
    case 1:
    sheet = new Hoja();
    bundle = new Bundle();
    pa = Parcel.Obtain();
    bundle.PutParcelable("sheet", sheet);
    pa.WriteBundle(bundle);
    pa.SetDataPosition(0);                    
    fragment = TabFragment.NewInstance();
    fragment.Arguments = bundle;
    break;
 }            

 SupportFragmentManager.BeginTransaction()
   .Replace(Resource.Id.content_frame, fragment)
   .Commit();
}

//In the TabFragments class receive the object
public override View OnCreateView(LayoutInflater inflater, ViewGroup     container, Bundle savedInstanceState)
{
   //var ignored = base.OnCreateView(inflater, container, savedInstanceState);

   parcelable_sheet = (Hoja)Arguments.GetParcelable(PARCEL_KEY);
}

0 个答案:

没有答案