Как вывести в адаптере для ImageView URL картинки
Есть адаптер -
phones.add(new Phone ("от 1", "до 500", R.drawable.kartinka, "likelook"));
Сам phones имеет следующий вид:
public class Phone {
private String name;
private String company;
private int image;
private String clickbutton;
public Phone(String name, String company, int image, String clickbutton){
this.name=name;
this.company = company;
this.image = image;
this.clickbutton = clickbutton;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getCompany() {
return this.company;
}
public void setCompany(String company) {
this.company = company;
}
public int getImage() {
return this.image;
}
public void setImage(int image) {
this.image = image;
}
public String getClickbutton(){
return this.clickbutton;
}
public void setClickbutton(){
this.clickbutton = clickbutton;
}
}
Всё классно работает но мне нужно чтобы я могу поставить за место R.drawable.kartinka - URl картинки, например - https://frescolib.org/static/logo.png
Как это правильно реализовать? Спасибо! В данном коде..
Ответы (1 шт):
Добавьте поле в Phone private String url;
Если ссылка заранее не известна присвойте полю null private String url = null
Точно так же заполняйте поля вашего Phone
phones.add(new Phone ("от 1", "до 500", "https://frescolib.org/static/logo.png", R.drawable.kartinka, "likelook"));
Добавьте библиотеку для работы с картинками, например Glide. В вашем build.gradle в разделе
dependencies {
implementation 'com.github.bumptech.glide:glide:4.6.1'
}
Могу предположить ,что поскольку у вас массив данных, вы захотите отображать эти данные списком. Ознакомьтесь с ListAdapter или с RecyclerView(смотрите примеры) В удобном вам месте, где есть доступ к view элемента списка, например в адаптере или в случаи использования RecyclerView в холдере или в методе onBindViewHolder. Сделайте следующее.
Glide.with(ваша view списка)
.load(game.getUrl) //ваша url
.error(R.drawable.ic_error_black_24dp) //покажет эту картинку в случаи отсутствия интернета
.into(imageView);
Удачи вам, спрашивайте если возникнут вопросы