在Android Java中,如何将字符串数组列表放入/读取Parcelable



我使用Android Studio,并试图创建一个包含四个字段的parcelable类:代表对象名称的字符串,代表人名的字符串数组,代表对象的字符串数组和代表地点的字符串数组(如果读者感兴趣的话,这实际上是一个cluedo游戏配置(。我很难将数组列表添加到Parcel。

目前,我使用Parcel.readArrayList(String.class.getClassLoader());来获取ArrayList,使用Parcel.writeStringList(ArrayList<String>);来放置ArrayList。然而,安卓工作室给了我一个警告Unchecked assignment: 'java.util.ArrayList to java.util.ArrayList<java.lang.String>'

请告诉我我做错了什么以及如何正确地做。

package com.example.cluedoservice;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.Arrays;
public class configInfo implements Parcelable {
protected String name = "default";
protected ArrayList<String> people, things, places;
protected configInfo(String name, ArrayList<String> people,
ArrayList<String> things, ArrayList<String> places) {
this.name = name;
this.people = people;
this.things = things;
this.places = places;
}
protected configInfo(Parcel in) {
name = in.readString();
people = in.readArrayList(String.class.getClassLoader());
things = in.readArrayList(String.class.getClassLoader());
places = in.readArrayList(String.class.getClassLoader());
}
@Override
public void writeToParcel(Parcel out, int i) {
out.writeString(name);
out.writeStringList(people);
out.writeStringList(things);
out.writeStringList(places);
}
public static final Creator<configInfo> CREATOR = new Creator<configInfo>() {
@Override
public configInfo createFromParcel(Parcel in) {
return new configInfo(in);
}
@Override
public configInfo[] newArray(int size) {
return new configInfo[size];
}
};
@Override
public int describeContents() {
return 0;
}
}

查看

people = in.createStringArrayList();
things = in.createStringArrayList();
places = in.createStringArrayList();