У меня есть приложение для фильмов, и я попытался передать имя и плакат каждого фильма из 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)

1
muklah 18 Ноя 2017 в 19:58

1 ответ

Лучший ответ

Попробуй это...

String uri = Uri.parse("http://...")
                    .buildUpon()
                    .appendQueryParameter("key", "val")
                    .build().toString();

Для получения дополнительной справки

1
Gowthaman M 20 Ноя 2017 в 09:50