2017-10-25 15 views
1

Parcelerを使用してArrayListの変数を転送しようとしていますが、実行中にエラーが発生する場合は、単にintent.putParcelableArrayListExtra( "votedetail"、arrlist);とリンクしてください。検索し、例を見つけませんでした、それを使用する方法?前もって感謝します。ParcelerをArrayListで使用する方法<Map <String、String >>?

+0

エラーの詳細をご記入ください。おそらく、それはあなたが 'ArrayList'で持っているオブジェクト型と関係しているでしょう。 'ArrayList'は、その中に含まれるオブジェクトがParcelablesでない場合、そのパーセルすることはできません。私が知る限り、 'Map 'のAndroid SDK実装は 'Parcelable'を実装していません。 – B0Andrew

答えて

0

Android Developer docsにメソッドのシグネチャを見てみてください。

Intent putParcelableArrayListExtra (String name, ArrayList<? extends Parcelable> value)

ArrayList内のオブジェクトはParcelable秒でなければなりません。 私が知る限り、Map<K,V>HashMap,SortedMapなど)のAndroid SDKの実装ではParcelableが実装されていません。 Parcelableとなる独自の実装を作成する必要があります。

0

B0Andrew、ありがとうございます。私は最後に答えを見つけました。 putParcelableArrayListを使ってそれを行います。まずArrayListになるために

"Arraylist<Map<String, String>>" 

をラップ(新しいArrayListのは、その変数を追加します)、その後、私はデータを転送するputParcelableArrayListを使用することができます。

0

パーセルはParcelableオブジェクトをシリアライズするためのライブラリです。

List<Map<String, String>> value = new ArrayList<>(); 
// Fill out List 

intent.putParcelable("votedetail", Parcels.wrap(value)); 

そして、あなたは受信活動のonCreateにデシリアライズ可能性があります:putParcelableArrayListExtra()を使用する必要はありません、ただputParcelable()使用あなたが上で直接それを使用する方法の例を見つけることができます

List<Map<String, String>> value = intent.getParcelableExtra("votedetail"); 

ウェブサイト:http://parceler.org/

関連する問題