Android – Как передать HashMap <String, String> между действиями?

Как передать detail HashMap в другую активность?

 HashMap<String,String> detail = new HashMap<String, String>(); detail.add("name","paresh"); detail.add("surname","mayani"); detail.add("phone","99999"); ...... ...... 

Это довольно просто, все объекты Collections реализуют interface Serializable (sp?), interface означает, что они могут передаваться как дополнительные функции внутри Intent

Используйте putExtra(String key, Serializable obj) чтобы вставить HashMap а также для другого использования Activity getIntent().getSerializableExtra(String key) Вам нужно будет getIntent().getSerializableExtra(String key) возвращаемое значение как HashMap .

Решение:

Отправитель:

 HashMap<String, String> hashMap= adapter.getItem(position); Intent intent = new Intent(SourceActivity.this, DestinationActivity.class); intent.putExtra("hashMap", hashMap); startActivity(intent); 

Операционная система:

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

Альтернативой является то, что информация является чем-то, что может считаться «глобальным» для приложения, а затем использовать класс Application . Вы просто расширяете его, а затем определяете свой собственный класс в манифесте с помощью тега <application>. Используйте это экономно. Стремление к жестокому обращению очень велико.

Я использовал это, чтобы передать мой HashMap

 startActivity(new Intent(currentClass.this,toOpenClass.class).putExtra("hashMapKey", HashMapVariable)); 

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

 HashMap<String,String> hm = (HashMap<String,String>) getIntent().getExtras().get("hashMapKey"); 

Cuz я знаю, что мой hashmap содержит строку как значение.

Здесь я показываю пример кода для вашей справки. Я просто пробовал этот код, он отлично работает для меня. Проверь это :

Основная деятельность :

  final HashMap<Integer, String> hashMap = new HashMap<Integer, String>(); hashMap.put(1, "Hi"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("h", hashMap); startActivity(intent); } }); 

SecondActivity:

 Toast.makeText(SecondActivity.this,"Hi " + getIntent().getSerializableExtra("h").toString(),Toast.LENGTH_SHORT).show(); 
Intereting Posts