は、 sendMessage メソッドで送信するために をandroid.os.Message
使用します。したがって、 a の中に aBundle
を入れることは可能ですか?HashMap
Bundle
61372 次
7 に答える
176
次のようにしてみてください:
Bundle extras = new Bundle();
extras.putSerializable("HashMap",hashMap);
intent.putExtras(extras);
そして2番目のアクティビティで
Bundle bundle = this.getIntent().getExtras();
if(bundle != null) {
hashMap = bundle.getSerializable("HashMap");
}
Hashmap はデフォルトで実装されているため、Bundleで使用して渡し、を使用して他のアクティビティに参加できます。Serializable
putSerializable
getSerializable
于 2012-07-12T13:35:43.013 に答える
13
ドキュメントによると、Hashmap
実装するので、推測Serializable
できます。putSerializable
試してみましたか?
于 2012-07-12T13:29:37.507 に答える
6
注意: AppCompatActivity を使用している場合は、
protected void onSaveInstanceState(Bundle outState) {}
( NOT public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {}
) メソッドを呼び出す必要があります。
サンプルコード...
マップを保存します。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("leftMaxima", leftMaxima);
outState.putSerializable("rightMaxima", rightMaxima);
}
そしてそれを onCreate で受け取ります:
if (savedInstanceState != null) {
leftMaxima = (HashMap<Long, Float>) savedInstanceState.getSerializable("leftMaxima");
rightMaxima = (HashMap<Long, Float>) savedInstanceState.getSerializable("rightMaxima");
}
重複した回答の場合は申し訳ありません-誰かが役に立つと思うかもしれません。:)
于 2016-08-23T06:06:48.667 に答える
4
バンドル内のすべてのキーを送信する場合は、試すことができます
for(String key: map.keySet()){
bundle.putStringExtra(key, map.get(key));
}
于 2015-10-24T18:57:05.780 に答える