2016-11-30 63 views
-1

我正在制作一个Android应用程序,我想发送一个ArrayList到下一个Activity,但我不知道如何使用Parcelable来做到这一点。Parcelable在接收所有信息时如何使用'KEY'值?

例如:我得到一个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();需要建立一个构造函数。

+0

请发布任何你想要的代码。 – gvmani

+0

密钥应该是唯一的,这是一个链接密钥和值的映射。如果你不能生成唯一的密钥('ID'值),你可以将它存储到一个Parcelable容器中 – AxelH

+0

因此,我可以将一个ArrayList存储在Parcelable容器中? –

回答

1

关键是你会使用任何引用您的名字ArrayList。在开始的活动中,您将使用此键检索ArrayList。例如,在最初的活动,请

bundle.putParcelableArrayList("MY_ARRAY_LIST", deelnemers); 

,然后在开始活动,进行检索后

Bundle b = getIntent().getExtras(); 
ArrayList<alleDeelnemers> list = b.getParcelableArrayList("MY_ARRAY_LIST"); 

注意,这里使用的关键是“MY_ARRAY_LIST”。使用xml字符串常量或存储常量KEYS的接口是更好的做法。

+0

但首先我需要让我的课:“alleDeelnemers”Parcelable,对吧? –

+0

正确,使其实现'Parcelable'或'Serializable'。 'Parcelable'是Android中的首选方式。 –

+0

我要写一些代码,超过10分钟我会改变我编写的代码。 –

0

1.首先创建一个使用plug-in

2发件人活动的alleDeelnemers类作为Parcelable

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

3接收机活动

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

我会检查插件,谢谢! –

+0

我让你知道它是否工作! –

+0

我终于找到了答案。 –

相关问题