2017-02-24 15 views
-1

我已經把一些價值到ArrayList中是這樣的:如何把ArrayList的成捆

private List<InfoProduct> product; 

    product = new ArrayList<>(); 
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "0", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "1", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "2", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "3", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "4", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "5", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "6", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "7", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "8", Product_data2, lunch,R.drawable.cardview_circle_corner)); 
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "9", Product_data2, lunch,R.drawable.cardview_circle_corner)); 

,當我需要去其他的片段,我想用包把我的ArrayList中,所以我寫一些代碼遵守這個

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.fragment_youtube, new FragmentYoutubeProduct(), "youtube"); 
    ft.addToBackStack("youtube"); 
    Bundle bundle = new Bundle(); 
    bundle.putStringArrayList("Product",product); 
    ft.commit(); 

我對bundle.putStringArrayList("Product",product);遇到錯誤,我該怎麼做才能解決這個問題?

+0

它的自定義類,以便得到的ArrayList你需要通過一個系列可連接或可分區 – Piyush

+1

當方法期望獲得'ArrayList ' – Selvin

+1

時,不要將'List '放在另一個可能的[如何使用Intents將一個對象從一個Android活動發送到另一個活動?](http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents)note:關於將Extras放在其中實際上是Bundle – Selvin

回答

2

首先要InfoProduct Parceble 檢查這 - Link

然後用`

bundle.putParcelableArrayList(product) 

您可以通過'

getParcelableArrayList(..) 

而且check this

0

您需要使用bundle.putParcelableArrayList()並將您的列表實例化爲私有ArrayList<InfoProduct> product;。同時確保InfoProduct是Parcelable。

0

你的代碼試圖字符串數組列表放入包。但是,您沒有字符串的數組列表。你有一個數組列表InfoProduct

因此你需要把你的數組列表綁定。爲此,您需要使用the methodputParcelableArrayList

bundle.putParcelableArrayList("Product, product); 

爲了做到這一點,你還需要確保你在parcelable對象InfoProduct,通過Android是serialisable。所以你需要讓它實現Parcelable interface

This post也可能會幫助你。