2015-04-23 15 views
1

Я пытаюсь создать оператор if, который проверяет, чтобы увидеть «рейтинги» ресторана «-1, 0, 1, 2, 3, 4 и 5». Мне нужно затем заменить номер рейтинга на изображение. Я попытался сделать это уже, но приложение продолжает сбой, приложение отлично работает без инструкции if и показывает 10 ближайших местоположений, как и должно. вот код:android development if statement with images

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 
} 
+0

Опубликовать logcat. – Bharatesh

+0

, очевидно, это сработает, потому что 'imageView' равно null. init view with 'findViewById (R.id.viewid);' – Bharatesh

+0

Посмотрите, что Android Studio сообщила о коде, который вы опубликовали: метод invocation 'imageView.setImageResource (R.drawable.rating0)' может производить 'java.lang.NullPointerException' – MiguelHincapieC

ответ

0

UPDATE:

В дополнении к приведенной ниже коде, вам нужно настроить вид завод, так что изображение может быть добавлено к чему-то.

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); 
+0

oh ok, поэтому в (контексте) мне нужно будет изменить его на рейтинговую переменную? как его появление с ошибкой там @ Zamereon – abdul

+0

Ваш контекст будет тем, что контекст в этой точке. Если вы находитесь в действии, просто замените его на 'this', если вы находитесь в фрагменте, замените его на' getActivity() 'и т. Д. – Zamereon

+0

Я нахожусь в моей main_activity, когда я меняю контекст на это, он идет с ошибкой. ошибка: ImageSwitcher (android.content.Context в ImageSwitcher нельзя применить к (android.location.LocationListener) @Zamereon – abdul

0
ImageSwitcher imageView = null; 

Его нуль.

Не забудьте указать его.

0

Вы должны проверить 2 вещи:

сначала нужно инициализировать ImageView (потому что это нуль). Это то, что сказал, как о вашем коде:

Метод вызова 'imageView.setImageResource (R.drawable.rating0)' может производить 'java.lang.NullPointerException'

Во-вторых, это хорошая идея проверьте, является ли переменная «рейтинг» не нулевой, поскольку она поступает из JSON.

+0

Я сомневаюсь, что рейтинг будет пустым, In cas e 'RatingValue' не найден в json, тогда он выбросит исключение JSON. – Bharatesh

+0

Да, правда, но обычно вы заботитесь о таких проблемах (консольный журнал, создайте ошибку msg ...), прежде чем выбросить исключение JSON. – MiguelHincapieC

+0

RatingValue не равно нулю. Все результаты от JSON прекрасны, и только когда я пытался преобразовать значение рейтинга в изображение, которое оно разбивало, потому что оно было нулевым. – abdul