我正在制作一个Android应用程序,我想发送一个ArrayList
到下一个Activity
,但我不知道如何使用Parcelable
来做到这一点。Parcelable在接收所有信息时如何使用'KEY'值?
例如:我得到一个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();
需要建立一个构造函数。
请发布任何你想要的代码。 – gvmani
密钥应该是唯一的,这是一个链接密钥和值的映射。如果你不能生成唯一的密钥('ID'值),你可以将它存储到一个Parcelable容器中 – AxelH
因此,我可以将一个ArrayList存储在Parcelable容器中? –