Справочная информация: В моем java-файле есть оператор Picasso, который читает JSON, а затем форматирует эти данные на экране. Проблема: После прочтения моего JSON Picasso не выполняетзагрузка изображения из URL в ImageView, вместо этого он останавливает все операторы после этого, такие как установка текста в TextView
JSON, который я читаю:
{
"coord":{
"lon":139.01,
"lat":35.02
},
"weather":[
{
"id":800,
"main":"Clear",
"description":"clear sky",
"icon":"01n"
}
],
"base":"stations",
"main":{
"temp":285.514,
"pressure":1013.75,
"humidity":100,
"temp_min":285.514,
"temp_max":285.514,
"sea_level":1023.22,
"grnd_level":1013.75
},
"wind":{
"speed":5.52,
"deg":311
},
"clouds":{
"all":0
},
"dt":1485792967,
"sys":{
"message":0.0025,
"country":"JP",
"sunrise":1485726240,
"sunset":1485763863
},
"id":1907296,
"name":"Tawarano",
"cod":200
}
Я могу получить данные и распечатать эти данные в TextView без каких-либо проблем, и все работает нормально.Код ниже показывает, как я получаю данные:
JSONObject jo = new JSONObject(data);
JSONObject main_object = jo.getJSONObject("main");
JSONArray array = jo.getJSONArray("weather");
JSONObject object = array.getJSONObject(0);
String icon = object.getString("icon");
String temp = String.valueOf(main_object.getDouble("temp"));
String description = object.getString("description");
String city = jo.getString("name");
Так что при форматировании temp, description и city у меня нет проблем.ПРИМЕЧАНИЕ. Я использую фрагмент в своей активности и файл для извлечения данных, который затем форматирует текстовое представление и т. Д. Во фрагменте следующим образом:
Tab1Fragment.txtCelcius.setText(temp);
Проблема возникает, когда я пытаюсь использовать Пикассо иполучить значение «icon» в JSON, так что «01n».Я просто не могу получить загрузку изображения, и не только это, но и все остальные процессы затем прерываются?
Например:
Tab1Fragment.txtCelcius.setText(temp);
Picasso.get().load("http://openweathermap.org/img/w/01d.png").into(Tab1Fragment.weatherIcon);
Tab1Fragment.txtCity.setText(city);
"temp" будет установлен в текст txtCelcius,но Пикассо не загрузит URL-адрес и не установит представление изображения И оператор «name» также не будет выполнен, однако, если я прокомментирую строку Пикассо, он будет
Я использую
String iconUrl = "http://openweathermap.org/img/w/"+icon+".png";
Тогда
Picasso.get().load(iconUrl).into(Tab1Fragment.weatherIcon);
Как я уже читал, это лучший способ выполнить мою задачу, но что-то не работает, и я не могу понять, что именно?Мой синтаксис Пикассо, который я вижу, в порядке, и я не вижу никаких ошибок в logcat и т. Д.
Вся помощь приветствуется.
Редактировать: Код Tab1Fragment с объявленным ImageView
weatherIcon = (ImageView) rootView.findViewById(R.id.imageView);