2017-11-18 26 views
1

ムービーアプリがあり、ムービーポスターをクリックして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で)に適用することができないことを伝え得る

+0

誰も助けることができない! ^^ " – muklah

+0

この折り目のインターフェイスを試してください。uri @muklah –

答えて

1

...

String uri = Uri.parse("http://...") 
        .buildUpon() 
        .appendQueryParameter("key", "val") 
        .build().toString(); 
これを試してみてください

詳細については、reference

+0

私はこの問題を感謝の人 – muklah

+0

@muklah ok good ,,,私の答えが完全使用してください。 –

関連する問題