Passing an ArrayList object from one activity to another in android

So, I want to send data from one activity to another using ArrayList objects. Below is the class code that I want to use as an object. So please tell me where I am going wrong.

class UserData implements Parcelable{ private String name, phone, city, username, password; private String userDetails[]; private UserData(Parcel in){ city = in.readString(); name = in.readString(); password = in.readString(); phone = in.readString(); username = in.readString(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel out, int flags) { // TODO Auto-generated method stub out.writeStringArray(getDetails()); } public static final Parcelable.Creator<UserData> CREATOR = new Parcelable.Creator<UserData>() { public UserData createFromParcel(Parcel in){ return new UserData(in); } @Override public UserData[] newArray(int size) { // TODO Auto-generated method stub return new UserData[size]; } }; /*set method to set all the data that will be taken from the edit texts*/ public UserData(String n, long p, String c, String user, String pass){ name = n; phone = Long.valueOf(p).toString(); city = c; username = user; password = pass; } /*get method to retrieve data in others activities such as signin and detailspage*/ String[] getDetails(){ userDetails = new String[]{name, phone, city, username, password}; return userDetails; } 

}

0
source share
3 answers

Try this, put you in an arraylist using putStringArrayListExtra

 Intent i = new Intent(MainActivity.this,Nextactivity.class); i.putStringArrayListExtra("arraylist", arraylist); 

And get an arraylist.

 Intent i = getIntent(); list = i.getIntegerArrayListExtra("arraylist"); 
0
source

First activity

  Arraylist<String> values; Intent it=new Intent(MainActivity.this,Next.class); it.putExtra("value", values); startActivity(it); 

Second activity

  Arraylist<String> list; list=(ArrayList<String>) getIntent().getSerializableExtra("value"); 
0
source

First, create two methods in your custom class.

 public class Qabir { public int age; public String name; Qabir(){ } Qabir(int age,String name){ this.age=age; this.name=name; } // method for sending object public String toJSON(){ return "{age:" + age + ",name:\"" +name +"\"}"; } // method for get back original object public void initilizeWithJSONString(String jsonString){ JSONObject json; try { json =new JSONObject(jsonString ); age=json.getInt("age"); name=json.getString("name"); } catch (JSONException e) { e.printStackTrace(); } } 

}

then create a function to send a list of objects

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Qabir q1 = new Qabir(22, "KQ"); Qabir q2 = new Qabir(23, "KQ"); Qabir q3 = new Qabir(24, "K_Q"); ArrayList<Qabir> list = new ArrayList<Qabir>(); list.add(q1); list.add(q2); list.add(q3); Intent in = new Intent(this, SubActivity.class); in.putExtra("obj", arrayListToJSON(list)); startActivity(in); } private String arrayListToJSON(ArrayList<Qabir> al) { JSONArray array = new JSONArray(); try { for (int i = 0; i < al.size(); i++) { array.put(new JSONObject(al.get(i).toJSON())); } } catch (JSONException e) { e.printStackTrace(); } return array.toString(); } 

and create another function on the receiver

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<Qabir> list = new ArrayList<Qabir>(); list = getObjectList(getIntent().getStringExtra("obj")); Log.e("Activity 2", "" +list.size()); } private ArrayList<Qabir> getObjectList(String st) { ArrayList<Qabir> list = new ArrayList<Qabir>(); JSONArray array = null; try { array = new JSONArray(st); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } for (int i = 0; i < array.length(); i++) { try { Qabir q= new Qabir(); q.initilizeWithJSONString(""+array.get(i)); list.add(q); } catch (JSONException e) { e.printStackTrace(); } } return list; } 

Enjoy ....

0
source

Source: https://habr.com/ru/post/1489545/


All Articles