我正在创建一个Android应用程序,我想将ArrayList
发送到下一个Activity
,但我不知道如何使用Parcelable
执行此操作。
例如:我的int
名为ID
,String
的名称为Names
。我使用JSON从PHP和MySQL获取所有信息。
在for循环中,我将所有Names
和ID
添加到一个类中。但后来我不知道如何将所有这些Names
和ID
写入bundle.putParcelableArrayList(KEY, ArrayList...);
,因为我不知道如何使用KEY
值来执行此操作。我是否需要提供KEY
值编号,或者是否自动提供一个KEY
?
class alleDeelnemers implements Parcelable {
int id;
String name;
/* GETTER AND SETTER */
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(volgnummer);
}
public alleDeelnemers(Parcel in) {
volgnummer = in.readString();
id = in.readInt();
}
// Creator
public static final Parcelable.Creator CREATOR
= new Parcelable.Creator() {
public alleDeelnemers createFromParcel(Parcel in) {
return new alleDeelnemers(in);
}
public alleDeelnemers[] newArray(int size) {
return new alleDeelnemers[size];
}
};
}
接收数据:
ArrayList<alleDeelnemers> deelnemers = new ArrayList<>();
for(int i=0; i < jArrayDeelnemer.length(); i++)
{
JSONObject json_data = jArrayDeelnemer.getJSONObject(i);
//class alleDeelnemers
deelnemer = new alleDeelnemers();
//ID
int ID = json_data.getInt("ID");
deelnemer.setId(ID);
//alle deelnemers
String name = json_data.getString("name ");
deelnemer.setName(name );
//toevoegen in de class
deelnemers.add(deelnemer);
}
错误这一行:deelnemer = new alleDeelnemers();
需要构建一个构造函数。
答案 0 :(得分:1)
密钥是您用来引用ArrayList
的任何名称。此外,在已启动的活动中,您将使用此键检索ArrayList
。例如,在初始活动中,执行
bundle.putParcelableArrayList("MY_ARRAY_LIST", deelnemers);
然后在已启动的活动中,稍后检索
Bundle b = getIntent().getExtras();
ArrayList<alleDeelnemers> list = b.getParcelableArrayList("MY_ARRAY_LIST");
请注意,此处使用的KEY是&#34; MY_ARRAY_LIST&#34;。使用xml字符串常量或存储常量KEYS的接口是一种更好的做法。
答案 1 :(得分:0)
1.首先使用plug-in
将您的alleDeelnemers类创建为Parcelable2发件人活动
Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("mData", myArrayList);
3接收者活动
myArrayList = getIntent().getParcelableExtra("mData")