Parcelable 在接收所有信息时如何使用 'KEY' 值?
Parcelable how to use the 'KEY' value when receiving all the information?
我正在制作一个 Android 应用程序,我想发送一个 ArrayList
给下一个 Activity
,但我不知道如何使用 Parcelable
.
例如:我有一个名为 ID
的 int
和一个名为 Names
的 String
。我使用 JSON 从 PHP 和 MySQL 获取所有信息。
在 for 循环中,我将所有 Names
和 ID
添加到 class。但是后来我不知道如何将所有这些 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();
需要构建构造函数。
1.First 使用 plug-in
创建您的 alleDeelnemers class 作为 Parcelable
2 发件人 Activity
Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("mData", myArrayList);
3 接收器 Activity
myArrayList = getIntent().getParcelableExtra("mData")
密钥是您用来引用您的 ArrayList
的任何名称。进一步在开始的 activity 中,您将使用此密钥检索 ArrayList
。比如在初始的activity中做
bundle.putParcelableArrayList("MY_ARRAY_LIST", deelnemers);
然后在开始activity,稍后检索
Bundle b = getIntent().getExtras();
ArrayList<alleDeelnemers> list = b.getParcelableArrayList("MY_ARRAY_LIST");
注意这里使用的KEY是"MY_ARRAY_LIST"。更好的做法是使用 xml 字符串常量或用于存储常量 KEYS 的接口。
我正在制作一个 Android 应用程序,我想发送一个 ArrayList
给下一个 Activity
,但我不知道如何使用 Parcelable
.
例如:我有一个名为 ID
的 int
和一个名为 Names
的 String
。我使用 JSON 从 PHP 和 MySQL 获取所有信息。
在 for 循环中,我将所有 Names
和 ID
添加到 class。但是后来我不知道如何将所有这些 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();
需要构建构造函数。
1.First 使用 plug-in
创建您的 alleDeelnemers class 作为 Parcelable2 发件人 Activity
Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("mData", myArrayList);
3 接收器 Activity
myArrayList = getIntent().getParcelableExtra("mData")
密钥是您用来引用您的 ArrayList
的任何名称。进一步在开始的 activity 中,您将使用此密钥检索 ArrayList
。比如在初始的activity中做
bundle.putParcelableArrayList("MY_ARRAY_LIST", deelnemers);
然后在开始activity,稍后检索
Bundle b = getIntent().getExtras();
ArrayList<alleDeelnemers> list = b.getParcelableArrayList("MY_ARRAY_LIST");
注意这里使用的KEY是"MY_ARRAY_LIST"。更好的做法是使用 xml 字符串常量或用于存储常量 KEYS 的接口。