How to pass ArrayList<HashMap<String, String>>from one activity to another
Solution 1:
Use putExtra(String, Serializable)
to pass the value in an Intent and getSerializableExtra(String)
method to retrieve the data.
Passing an ArrayList<HashMap<String, String>>
from Activity A to Activity B
Intent intent = new Intent(this, B.class);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("sunil", "sahoo");
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>();
arl.add(hm);
intent.putExtra("arraylist", arl);
startActivityForResult(intent, 500);
Retrieve the data in Activity B
ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
System.out.println("...serialized data.."+arl);
Solution 2:
You can use a Bundle to pass elements from one Activity to another.
Check this out: http://developer.android.com/reference/android/os/Bundle.html
You create the Bundle, put it into the Intent, and then on the new activity, you get it and extract the elements you need.
It goes like this:
Bundle b = new Bundle();
String s = "hello";
b.putString("example", s);
intent.putExtras(b);
and then on the new activity:
Bundle b = this.getIntent().getExtras();
String s = b.getString("example");
Solution 3:
here is another technique, I used following line to define ArrayList in firstClass.
static ArrayList al=new ArrayList();
In second activity, i used following line to get the data of ArrayList from firstClass,
firstClass.al.size();