CREATOR对象在com.example.android.movieapp.Movie类上是静态的
当我尝试将一个对象发送到另一个CREATOR对象在com.example.android.movieapp.Movie类上是静态的,android,android-intent,parcelable,Android,Android Intent,Parcelable,当我尝试将一个对象发送到另一个活动时,会显示以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.movieapp/com.example.android.movieapp.DetailActivity}: android.os.BadParcelableException: Parcelable protocol requires the CREATOR obje
活动
时,会显示以下错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.movieapp/com.example.android.movieapp.DetailActivity}: android.os.BadParcelableException: Parcelable protocol requires the CREATOR object to be static on class com.example.android.movieapp.Movie
这是我的代码:
public class Movie implements Parcelable{
String title;
String image;
public Movie (String title, String image){
this.title = title;
this.image = image;
}
public Movie(JSONObject movie) throws JSONException {
this.title = movie.getString("original_title");
this.image = movie.getString("poster_path");
}
private Movie (Parcel in){
title = in.readString();
image = in.readString();
}
public final Parcelable.Creator<Movie> CREATOR = new Parcelable.Creator<Movie>(){
@Override
public Movie createFromParcel(Parcel parcel) {
return new Movie(parcel);
}
@Override
public Movie[] newArray(int i) {
return new Movie[i];
}
};
@Override
public String toString() {
return title + "--" + image;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(title);
dest.writeString(image);
}
public String getImage() {
return image;
}
public String getTitle() {
return title;
}
例外情况说明:
…CREATOR对象在com.example.android.movieapp.Movie类上是静态的
此外,从文件中:
实现Parcelable接口的类还必须具有一个称为CREATOR的非空静态字段,该字段的类型实现Parcelable.CREATOR接口
CREATOR
必须是静态的:
public static final Parcelable.Creator<Movie> CREATOR =
公共静态最终包裹。创建者=
public static final Parcelable.Creator=。。。
Movie movie;
Bundle extras = getIntent().getExtras();
movie = extras.getParcelable("send");
title.setText(movie.title);
public static final Parcelable.Creator<Movie> CREATOR =