如何将detail
哈希表传递给另一个Activity?
HashMap<String,String> detail = new HashMap<String, String>();
detail.add("name","paresh");
detail.add("surname","mayani");
detail.add("phone","99999");
......
......
如何将detail
哈希表传递给另一个Activity?
HashMap<String,String> detail = new HashMap<String, String>();
detail.add("name","paresh");
detail.add("surname","mayani");
detail.add("phone","99999");
......
......
这很简单,所有的Collections
对象都实现了Serializable
接口,这意味着它们可以作为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");
java.lang.RuntimeException: Parcel: unable to marshal value
我正在传递 HaspMap<String, JSONArray>。 - Anish KumarstartActivity(new Intent(currentClass.this,toOpenClass.class).putExtra("hashMapKey", HashMapVariable));
在接收活动中编写以下内容:
HashMap<String,String> hm = (HashMap<String,String>) getIntent().getExtras().get("hashMapKey");
这里我展示了一段代码供您参考。我刚刚尝试了这段代码,它对我来说运行良好。请查看:
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();
static HashMap
。 - Vikas PatidarHashMap
,而是可以通过在意图中放置一个ArrayList<String>
来实现此目的,在另一个活动中,您可以获取这些位置的值,假设您知道存储在特定位置的数据。 - Vikas Patidar