ムービーアプリがあり、ムービーポスターをクリックしてMainActivityからDetailActivityまで各ムービーの名前とポスターを渡そうとしましたが、問題なく正しく渡されましたが、一つのアクティビティから別のアクティビティへポスターパスを渡す
このMainActivityのコードである:
public void onClick(View v) {
int adapterPosition = getAdapterPosition();
Uri moviePoster = mMoviesItems.get(adapterPosition).getFullPosterPath();
String movieName = mMoviesItems.get(adapterPosition).getName();
mClickHandler.onClick(moviePoster, movieName);
}
これはDetailActivityためのコードである:
private String moviePoster;
private String movieName;
private ImageView mMoviePoster;
private TextView mMovieName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
mMovieName = (TextView) findViewById(R.id.tv_movie_name);
mMoviePoster = (ImageView) findViewById(R.id.iv_poster);
Intent intentThatStartedThisActivity = getIntent();
if (intentThatStartedThisActivity != null) {
if (intentThatStartedThisActivity.hasExtra("moviePoster")) {
moviePoster = intentThatStartedThisActivity.getStringExtra("moviePoster");
mMoviePoster.setImageDrawable(getResources().getDrawable(moviePoster));
}
if (intentThatStartedThisActivity.hasExtra("movieName")) {
movieName = intentThatStartedThisActivity.getStringExtra("movieName");
mMovieName.setText(movieName);
}
}
}
}
と、この私がポスターの方法を構築するカスタムクラスです:
public class MovieItem extends ArrayList<MovieItem> {
private String photo;
private String name;
public MovieItem(String poster_path, String original_title) {
this.photo = poster_path;
this.name = original_title;
}
public String getPhoto() {
return photo;
}
public String getName() {
return name;
}
public Uri getFullPosterPath() {
return Uri.parse("http://image.tmdb.org/t/p/")
.buildUpon()
.appendPath("w185")
.appendEncodedPath(getPhoto())
.build();
}
}
それは私がウリのようにそれを定義していることが正しいのか? 、なぜ私はgetDrawable(moviePoster));
とエラーがリソースの
getDrawable(intは)(java.lang.Stringで)に適用することができないことを伝え得る
誰も助けることができない! ^^ " – muklah
この折り目のインターフェイスを試してください。uri @muklah –