1

List<Map<String, String>>別のアクティビティにを渡したい。そのためにParcelableを実装する方法は?

4

3 に答える 3

2

可能であれば、Bundle代わりにを使用してみてくださいMap。あなたの場合、List<Map<String, String>>aBundleは非常にうまく置き換えることができます。

詳細:http ://developer.android.com/reference/android/os/Bundle.html

于 2012-12-21T19:50:42.187 に答える
1

それを拡張Mapして実装することができParcelableます。パーセルに書き込むときは、要素 count を first として書き込みint、次にエントリを繰り返し処理して、次のように次々と追加できます。

destParcelable.writeInt(size());
for (final Entry<String, String> entry : getEntries()) {
  destParcelable.writeString(entry.getKey());
  destParcelable.writeString(entry.getValue());
}

パーセルから読み取る場合は、最初のものを読み取りint(エントリ数になります)、キーと値を 1 つずつ読み取るループを開始します。

final int size = srcParcelable.readInt();
for (int i=0; i<size; i++) {
  put(srcParcelable.readString(), srcParcelable.readString());
}

そして、バンドルするパーセルブルのリストを追加する方法があると思います。マップはパーセルブルになっているので、問題はありません。

于 2012-06-04T07:19:31.993 に答える
1

1. このリストを渡したいアクティビティのコンストラクタを作成します。

public Class CalledActivity extends Activity{

List<Map<String, String>> list;
public calledActivity(List<Map<String, String>> list){
this.list=list;
}
}

2.リストを渡したいアクティビティからこのコンストラクタを呼び出します。

この質問を参照してください。Androidアクティビティクラスコンストラクターの動作

于 2012-06-04T09:22:41.247 に答える