0

我目前有这个自定义 ArrayList:

ArrayList<PlaceDetails> place_list = new ArrayList<PlaceDetails>();

这将在 onCreateView() 部分填充。

我不确定如何将这个 ArrayList 打包从这个片段类传递到另一个片段类。以下是我的代码片段:

public void Map(View view){
    if(hasConnection() == true){
        Bundle b = new Bundle();
        // how should I be passing the ArrayList in this bundle?
        FragmentTransaction ft = getSherlockActivity().getSupportFragmentManager().beginTransaction();
        TOnlineMapViewFragment mapfrag = TOnlineMapViewFragment.newInstance(b);
        ft.replace(R.id.container, mapfrag).addToBackStack(null).commit();

    }
}

所以我创建了包,我想用 newInstance() 方法将它传递给下一个片段。我该怎么做?

4

2 回答 2

0

考虑在你的类中实现Parcelable接口。然后您就可以将 PlaceDetails 存储在 Bundle 中并将其传递给 setArguments() 方法。

我找到了一个教程:http ://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/ 我没有t 测试它,但它看起来不错。

于 2013-01-27T15:17:40.447 回答
-2

你真的确定真的需要一个捆绑包吗?

 TOnlineMapViewFragment mapfrag = TOnlineMapViewFragment.newInstance(b);
 mapfrag.setPlaceList(place_list)

创建应该是微不足道的setPlaceList(ArrayList<PlaceDetails> place_list)......

于 2013-01-27T15:04:30.243 回答