Android:将非原始ArrayList类型从一个片段传递到另一个片段

时间:2013-01-27 15:01:36

标签: android android-fragmentactivity

我目前有这个Custom 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();

    }
}

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

2 个答案:

答案 0 :(得分:0)

考虑在您的课程中实施Parcelable界面。然后你就可以将PlaceDetails存储在Bundle中并将其传递给setArguments()方法。

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

答案 1 :(得分:-2)

你真的确定需要捆绑吗?

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

创建setPlaceList(ArrayList<PlaceDetails> place_list) ...

应该是微不足道的