Android: как пользоваться Class<? расширяет Activity> как тип переменной в Parcelable
У меня проблемы с записью и чтением переменной, тип которой 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
}
}
2 ответа
Ты можешь использовать parcel.writeString(student.getClas().getName());
а также student.setClas(Class.forName(in.readString());
Class
Serializable, так что вы можете использовать writeSerializable
а также readSerializable
, Затем вам придется отбросить его обратно Class<? extends Activity>
, Большинство IDE будут предупреждать вас о небезопасных ролях, но не существует отличного способа сделать это так, чтобы избежать этого предупреждения.