Разработка 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;

Это ноль.

Сделайте это не нуль.

Другие вопросы по тегам