Как отправить значение hashmap в другое действие, используя намерение - PullRequest
62 голосов
/ 28 сентября 2011

Как отправить значение HashMap из одного намерения во второе намерение?

Кроме того, как извлечь это значение HashMap во втором занятии?

Ответы [ 2 ]

179 голосов
/ 28 сентября 2011

Java-класс HashMap расширяет интерфейс Serializable, что упрощает добавление его в намерение с помощью метода Intent.putExtra(String, Serializable).

В операции / услуге / трансляцииПолучатель, который получает намерение, вы затем вызываете Intent.getSerializableExtra(String) с именем, которое вы использовали с putExtra.

Например, при отправке намерения:

HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("key", "value");
Intent intent = new Intent(this, MyOtherActivity.class);
intent.putExtra("map", hashMap);
startActivity(intent);

А затем в получающей деятельности:

protected void onCreate(Bundle bundle) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    HashMap<String, String> hashMap = (HashMap<String, String>)intent.getSerializableExtra("map");
    Log.v("HashMapTest", hashMap.get("key"));
}
4 голосов
/ 01 декабря 2017

Надеюсь, это тоже сработает.

в отправляющей деятельности

 Intent intent = new Intent(Banks.this, Cards.class);
                            intent.putExtra("selectedBanksAndAllCards", (Serializable) selectedBanksAndAllCards);
                            startActivityForResult(intent, 50000);

в получающей деятельности

    Intent intent = getIntent();
    HashMap<String, ArrayList<String>> hashMap = (HashMap<String, ArrayList<String>>) intent.getSerializableExtra("selectedBanksAndAllCards");

когда я отправляю HashMap следующим образом,

Map<String,ArrayList<String>> selectedBanksAndAllCards = new HashMap<>();

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...