java - 您如何在 Android Java 中将字符串的 ArrayList 放入/读取到 Parcelable 中?
问题描述
我使用 Android Studio 并尝试创建一个包含四个字段的可打包类:表示对象名称的字符串、表示人名的字符串数组列表、表示对象的字符串数组列表、表示对象的字符串数组列表地方(如果读者对此感兴趣,它实际上是一个线索游戏配置)。我无法将数组列表添加到包裹中。
目前我Parcel.readArrayList(String.class.getClassLoader());
用来获取一个 ArrayList 并Parcel.writeStringList(ArrayList<String>);
放置一个 ArrayList。但是,Android Studio 给了我一个警告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();
推荐阅读
- javascript - 如果已填充或为空,则设置类
- c++ - 按特定顺序迭代数组元素
- html - 如何在 3 列布局中拥有一个固定宽度的居中列?
- javascript - ng 测试后,业力看不到测试(已执行 0 次,共 0 次成功)
- node.js - OpenFire 服务器不适用于 websockets
- windows - 当前目录在批处理脚本中的“CALL”之后自动更改为上一个目录
- dart - 如何在 Dart 的 const 构造函数中断言类型参数不是“动态的”?
- c++ - 必须是带有 typedef 声明对象的非静态成员函数
- mysql - 错误 1449 (HY000): 指定为定义者的用户 ('mysql.infoschema'@'localhost') 不存在
- php - 将 PHP 字符串变量转换为 PHP 脚本