Разработка Android, если заявление с изображениями
Я пытаюсь создать оператор if, который проверяет "рейтинги" ресторана на "-1, 0, 1, 2, 3, 4 и 5". Мне нужно затем заменить номер рейтинга на изображение. Я уже пытался сделать это, но приложение продолжает падать, приложение работает нормально без оператора if и показывает 10 ближайших местоположений, как и должно. вот код:
JSONObject jo = (JSONObject) ja.get(i);
String name = jo.getString("BusinessName");
String rating = jo.getString("RatingValue");
String address1 = jo.getString("AddressLine1");
String address2 = jo.getString("AddressLine2");
String postcode = jo.getString("PostCode");
ImageSwitcher imageView = null;
if(rating.equalsIgnoreCase("-1")){
imageView.setImageResource(R.drawable.rating0);
}else if(rating.equalsIgnoreCase("0")){
imageView.setImageResource(R.drawable.rating0);
}else if(rating.equalsIgnoreCase("1")){
imageView.setImageResource(R.drawable.rating0);
}else{
//default case, if above all conditions will become false then this will call
}
3 ответа
ОБНОВИТЬ:
В дополнение к приведенному ниже коду, вам нужно настроить фабрику просмотра, чтобы ваше изображение могло быть добавлено к чему-либо.
ImageSwitcher imageView = new ImageSwitcher(context);
imageView.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView view = new ImageView(Location_assignment.this);
return view;
}
});
Затем поместите свое заявление if ниже этого кода.
Вы переключатель изображения является нулевым. Вам нужно создать экземпляр переключателя изображений, прежде чем вы сможете назначить ему изображение.
ImageSwitcher imageView = new ImageSwitcher(context);
Вы должны проверить 2 вещи:
Сначала нужно инициализировать imageView (потому что он нулевой). Вот что AS сказал о вашем коде:
Вызов метода 'imageView.setImageResource(R.drawable.rating0)' может привести к появлению java.lang.NullPointerException.
Во-вторых, это хорошая идея проверить, не является ли переменная "rating" нулевой, потому что она исходит из JSON.
ImageSwitcher imageView = null;
Это ноль.
Сделайте это не нуль.