传递对象的ArrayList中从一个活动到另一个机器人 [英] Passing ArrayList of an object from one activity to another in android
本文介绍了传递对象的ArrayList中从一个活动到另一个机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以的情况下,我想从一个活动发送数据到另一个对象的ArrayList的帮助。下面是我想的对象,使用类code。所以,请告诉我,我要去的地方错了。
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 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;
}
}
推荐答案
首先,在您的自定义类中创建两个方法
First in your custom Class create two methods
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 object list
@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, "K Q");
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 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....
这篇关于传递对象的ArrayList中从一个活动到另一个机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文