Як надіслати HashMap
значення з одного наміру на другий намір?
Крім того, як отримати це HashMap
значення під час другої діяльності?
Як надіслати HashMap
значення з одного наміру на другий намір?
Крім того, як отримати це HashMap
значення під час другої діяльності?
Відповіді:
Клас HashMap Java розширює 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"));
}
Я сподіваюся, це теж має спрацювати.
в роботі надсилання
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<>();
Сподіваюся, це комусь допоможе.