我在编写和读取类型为Class<? extends Activity>
的变量时遇到问题,但我可以找到解决方法。
clas是变量名,其类型为Class<? extends Activity>
。当学生点击列表活动
没有Parcelable.readClass()
或writeClass()
这样的功能,任何人都可以帮忙解决这个问题
提前谢谢
这是我的Student.java
public class Student {
private String id;
private Class<? extends Activity> clas;
...
}
我在这里创建了ParcalebleStudent.java
public class ParcalebleStudent implements Parcelable {
private Student student;
....
private ParcalebleStudent(Parcel in) {
student = new Student();
student.setId(in.readString());
student.setClas(in.readWhat?????????);//I need help here
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(student.getId());
parcel.writeWhat???????(student.getClas());//and here
}
}
答案 0 :(得分:2)
您可以使用parcel.writeString(student.getClas().getName());
和student.setClas(Class.forName(in.readString());
答案 1 :(得分:1)
Class
是可序列化的,因此您可以使用writeSerializable
和readSerializable
。然后,您必须将其强制转换回Class<? extends Activity>
。大多数IDE会给你一个不安全的强制警告,但是没有一种很好的方法可以避免这种警告。