可以在接收所有信息时如何使用“KEY”值?

时间:2016-11-30 12:21:33

标签: android arraylist parcelable

我正在创建一个Android应用程序,我想将ArrayList发送到下一个Activity,但我不知道如何使用Parcelable执行此操作。

例如:我的int名为IDString的名称为Names。我使用JSON从PHP和MySQL获取所有信息。

在for循环中,我将所有NamesID添加到一个类中。但后来我不知道如何将所有这些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();需要构建一个构造函数。

2 个答案:

答案 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类创建为Parcelable

2发件人活动

Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("mData", myArrayList);

3接收者活动

myArrayList = getIntent().getParcelableExtra("mData")