Parcelable 在接收所有信息时如何使用 'KEY' 值?

Parcelable how to use the 'KEY' value when receiving all the information?

我正在制作一个 Android 应用程序,我想发送一个 ArrayList 给下一个 Activity,但我不知道如何使用 Parcelable.

例如:我有一个名为 IDint 和一个名为 NamesString。我使用 JSON 从 PHP 和 MySQL 获取所有信息。

在 for 循环中,我将所有 NamesID 添加到 class。但是后来我不知道如何将所有这些 NamesID 写成一个 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 的接口。