Как передать detail
HashMap в другую активность?
HashMap<String,String> detail = new HashMap<String, String>();
detail.add("name","paresh");
detail.add("surname","mayani");
detail.add("phone","99999");
......
......
Как передать detail
HashMap в другую активность?
HashMap<String,String> detail = new HashMap<String, String>();
detail.add("name","paresh");
detail.add("surname","mayani");
detail.add("phone","99999");
......
......
Это довольно просто: все объекты Collections
реализуют Serializable
(sp?) interface
, что означает, что они могут передаваться как Extras внутри Intent
Используйте putExtra(String key, Serializable obj)
, чтобы вставить HashMap
, а с другой Activity
использовать 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 я know my hashmap содержит строку как значение.
Здесь я показываю пример кода для вашей справки. Я просто пробовал этот код, он отлично работает для меня. Проверьте это:
MainActivity:
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();