Passing Arraylist Of An Object From One Activity To Another In Android
So the case is i want to send data from one activity to another with the help of ArrayList of objects. Below is the class code which i want to use as object. So please tell me that
Solution 1:
Try this, put you arraylist using putStringArrayListExtra
Intent i = newIntent(MainActivity.this,Nextactivity.class);
i.putStringArrayListExtra("arraylist", arraylist);
And get arraylist.
Intenti= getIntent();
list = i.getIntegerArrayListExtra("arraylist");
Solution 2:
1st Activity
Arraylist<String> values;
Intent it=new Intent(MainActivity.this,Next.class);
it.putExtra("value", values);
startActivity(it);
2nd Activity
Arraylist<String> list;
list=(ArrayList<String>) getIntent().getSerializableExtra("value");
Solution 3:
First in your custom Class create two methods
publicclassQabir {
public int age;
publicString name;
Qabir(){
}
Qabir(int age,String name){
this.age=age; this.name=name;
}
// method for sending objectpublicStringtoJSON(){
return"{age:" + age + ",name:\"" +name +"\"}";
}
// method for get back original objectpublicvoidinitilizeWithJSONString(String jsonString){
JSONObject json;
try {
json =newJSONObject(jsonString );
age=json.getInt("age");
name=json.getString("name");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
then create a function to send object list
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Qabir q1 = newQabir(22, "KQ");
Qabir q2 = newQabir(23, "K Q");
Qabir q3 = newQabir(24, "K_Q");
ArrayList<Qabir> list = newArrayList<Qabir>();
list.add(q1);
list.add(q2);
list.add(q3);
Intentin = newIntent(this, SubActivity.class);
in.putExtra("obj", arrayListToJSON(list));
startActivity(in);
}
privateStringarrayListToJSON(ArrayList<Qabir> al) {
JSONArray array = newJSONArray();
try {
for (int i = 0; i < al.size(); i++) {
array.put(newJSONObject(al.get(i).toJSON()));
}
} catch (JSONException e) {
e.printStackTrace();
}
return array.toString();
}
and create another function on receiver
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<Qabir> list = newArrayList<Qabir>();
list = getObjectList(getIntent().getStringExtra("obj"));
Log.e("Activity 2", "" +list.size());
}
privateArrayList<Qabir> getObjectList(String st) {
ArrayList<Qabir> list = newArrayList<Qabir>();
JSONArray array = null;
try {
array = newJSONArray(st);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < array.length(); i++) {
try {
Qabir q= newQabir();
q.initilizeWithJSONString(""+array.get(i));
list.add(q);
} catch (JSONException e) {
e.printStackTrace();
}
}
return list;
}
Enjoy....
Post a Comment for "Passing Arraylist Of An Object From One Activity To Another In Android"