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 に答える