0
我目前有與實現FragmentTabHost與其選項卡之間共享數據的問題。如何保持跨標籤對象的引用?
我有一個包含FragmentTabHost片段設置是這樣的:
這些選項卡public class TTTabContainerFragment: Android.Support.V4.App.Fragment{
TTDataSet SharedData;
//OnCreate and initialization...
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
FragmentHost = new FragmentTabHost(Activity);
FragmentHost.Setup(Activity, ChildFragmentManager);
FragmentHost.AddTab(FragmentHost.NewTabSpec("tab1").SetIndicator(Resources.GetString(Resource.String.BOOKHOUR_ITEM_BOOKING)), new TTBookHourFragment().Class, TTDataSets.CreateArgumentBundle(SharedData));
FragmentHost.AddTab(FragmentHost.NewTabSpec("tab2").SetIndicator(Resources.GetString(Resource.String.BOOKHOUR_ITEM_INFO)), new TTBookHourInfoFragment().Class, TTDataSets.CreateArgumentBundle(SharedData));
FragmentHost.AddTab(FragmentHost.NewTabSpec("tab3").SetIndicator(Resources.GetString(Resource.String.BOOKHOUR_ITEM_EXPENSES)), new TTBookHourExpenseDialog().Class, TTDataSets.CreateArgumentBundle(SharedData));
return FragmentHost;
}
public override void OnDestroyView()
{
base.OnDestroyView();
FragmentHost = null;
}
每個需要訪問,並應能夠操縱在SharedData數據集中的數據。儘管我可以通過序列化/將SharedData集序列化爲捆綁包來「發送數據」到選項卡片段,但對容器片斷中原始DataSet的引用將丟失,並且會在選項卡片段中創建新對象。因此,數據操作不會在選項卡之間共享。
有沒有什麼辦法可以在3個標籤之間共享數據,以確保數據操作在它們之間持續存在?最好不訴諸於靜態變量。