Я сейчас создаю приложение, которое анализирует URL и получает из него некоторую информацию. Я хочу использовать эти значения для создания объектов, помещения их в массив списков и отображения их на экране с макетом ListView.
Проблема возникает, когда я хочу присвоить значения drawables для объекта. Я хочу, в зависимости от его значений, присвоить рисованный или другой. Вот код:
Retransmision retransmision = new Retransmision();
retransmision.setIdioma(idioma);
retransmision.setTipo(tipo);
retransmision.setCalidad(calidad);
retransmision.setLink(link);
retransmision.setImagenLogo(tipo);
retransmision.setImagenCalidad(calidad);
retransmisionesDescargadas.add(retransmision);
Я просто создаю объект и присваиваю некоторые значения его методам. И вот метод, который выбрасывает исключение nullPointerException:
public void setImagenCalidad(int calidad) {
if (calidad == 0) {
imagenCalidad = context.getResources().getDrawable(R.drawable.desconocida);
} else if(calidad <= 250) {
imagenCalidad = context.getResources().getDrawable(R.drawable.baja);
} else if(calidad <= 500) {
imagenCalidad = context.getResources().getDrawable(R.drawable.media);
} else if(calidad <= 750) {
imagenCalidad = context.getResources().getDrawable(R.drawable.alta);
} else if(calidad <= 1000) {
imagenCalidad = context.getResources().getDrawable(R.drawable.muy_alta);
} else {
imagenCalidad = context.getResources().getDrawable(R.drawable.excelente);
}
}
Странно, так как я использую подобный код для метода setImagenLogo, который, кажется, работает хорошо. И единственное отличие состоит в том, что каждый получает параметр String. А другой int.
Ps: Если это может помочь, то это конструктор объекта retransmision и его переменных:
Context context;
private String idioma;
private String tipo;
private int calidad;
private String link;
private Drawable imagenLogo;
private Drawable imagenIdioma;
private Drawable imagenCalidad;
public Retransmision() {
idioma = "";
tipo = "";
calidad = 0;
link = "";
imagenLogo = null;
imagenIdioma = null;
imagenCalidad = null;
}