Подтвердить что ты не робот

Как отправить значение hashmap в другую деятельность, используя намерение

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

Также, как получить это значение HashMap во втором действии?

4b9b3361

Ответ 1

Класс 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"));
}

Ответ 2

Я надеюсь, что это тоже сработает.

в отправляющей операции

 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<>();

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