List<Map<String, String>>
別のアクティビティにを渡したい。そのためにParcelableを実装する方法は?
質問する
1584 次
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 に答える