Когда я пытаюсь отправить объект в другой Activity
, он показывает эту ошибку:объект СОЗДАТЕЛЬ быть статическим на классе com.example.android.movieapp.Movie
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;
}
}
Главный класс:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Movie movie = movieAdapter.getItem(position);
Intent intent = new Intent(getApplication(), DetailActivity.class);
intent.putExtra("send", movie);
startActivity(intent);
}
});
}
и DetailClass:
Movie movie;
Bundle extras = getIntent().getExtras();
movie = extras.getParcelable("send");
title.setText(movie.title);
Публичный статический окончательный Parcelable.Creator CREATOR = ... –
Onik
Теперь он работает. Благодаря –