繁体   English   中英

如何通过列表<CustomObject>通过意图

[英]How to pass List<CustomObject> through Intents

我有自定义对象的 ArrayList

ArrayList<AvailableCountry>
        listAvailableCountries = new ArrayList();

我有两个 AvailableCountry 对象

AvailableCountry obj1=new AvailableCountry();
AvailableCountry obj2=new AvailableCountry();

然后我添加到arraylist

listAvailableCountries.add(obj1);
listAvailableCountries.add(obj2);

这是自定义对象类

public class AvailableCountry {

@SerializedName("Disabled")
@Expose
private Boolean disabled;
@SerializedName("Selected")
@Expose
private Boolean selected;
@SerializedName("Text")
@Expose
private String text;
@SerializedName("Value")
@Expose
private String value;

public Boolean getDisabled() {
    return disabled;
}

public void setDisabled(Boolean disabled) {
    this.disabled = disabled;
}

public Boolean getSelected() {
    return selected;
}

public void setSelected(Boolean selected) {
    this.selected = selected;
}

public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

}

现在我想将这个arraylist从活动A传递给活动B。然后我想在活动B中接收。我怎样才能完成这个任务。

1)首先为您的自定义对象类实现Serializable接口

public class AvailableCountry implements Serializable {

@SerializedName("Disabled")
@Expose
private Boolean disabled;
@SerializedName("Selected")
@Expose
private Boolean selected;
@SerializedName("Text")
@Expose
private String text;
@SerializedName("Value")
@Expose
private String value;

public Boolean getDisabled() {
    return disabled;
}

public void setDisabled(Boolean disabled) {
    this.disabled = disabled;
}

public Boolean getSelected() {
    return selected;
}

public void setSelected(Boolean selected) {
    this.selected = selected;
}

public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

}

2)将arrayList从A类发送到B类

Intent intent =new Intent(A.this,B.class);
intent.putExtra("listCountry", (Serializable) listAvailableCountries);
startActivity(intent)

3)接收B类中的arraylist

ArrayList<AvailableCountry>listAvailableCountries = (ArrayList<AvailableCountry>) getIntent().getSerializableExtra("listCountry");

使用 Gson 我们可以轻松共享数据

compile 'com.google.code.gson:gson:2.4'

在 A.class 中像这样发送

 Intent intent = new Intent(A.this, B.class);
    String favJSONString = new Gson().toJson(listAvailableCountries);
    intent.putExtra("listAvailableCountries", favJSONString);
    startActivity(intent);

并像这样接收 B.class

try {
        Type type = new TypeToken<List<AvailableCountry>>() {
        }.getType();
        ArrayList<AvailableCountry> listAvailableCountries  = new Gson().fromJson(getIntent().getStringExtra("listAvailableCountries"), type);
    } catch (Exception e) {
        e.printStackTrace();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM