嘿我在我的Android应用程序中使用UniversalImageLoader
目前它是从天气api加载图像,但每当我得到新的数据图像加载器不加载新的图像。通用图像加载器只加载初始图像任何新图像不加载
这就是我希望它在api返回数据时工作的原因,ImageLoader
从url加载图像,当我得到新数据时,新图像被加载到旧图像所在的相同位置。我如何确保Image Loader始终在我的应用程序中加载新的url。
这里是我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.weather, container, false);
int i = getArguments().getInt(ARG_MENU_NUMBER);
String titleString = getResources().getStringArray(R.array.drawer_menu)[i];
getActivity().setTitle(titleString);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getActivity()).build();
ImageLoader.getInstance().init(config);
options = new DisplayImageOptions.Builder()
.displayer(new RoundedBitmapDisplayer(2)).build();
return view;
}
public void processJson(String json) {
w.setText("Wind Speed");
ws.setText("Wind Direction");
hu.setText("Humidity");
pr.setText("Pressure");
String weatherDescription = null;
String weatherUrl = null;
Calendar calender = Calendar.getInstance();
try {
JSONObject jObj = new JSONObject(json);
JSONObject jobject = jObj.getJSONObject("data");
JSONArray jarrayConditions = jobject.getJSONArray("current_condition");
for(int i = 0;i < jarrayConditions.length();i++){
JSONObject jobject2 = jarrayConditions.getJSONObject(i);
String tempc = jobject2.getString("temp_C");
String windSpeed = jobject2.getString("windspeedKmph");
String windDirections = jobject2.getString("winddirDegree");
String airHumidity = jobject2.getString("humidity");
String airPressure = jobject2.getString("pressure");
for(int j = 0; j < jobject2.getJSONArray("weatherDesc").length();j++){
weatherDescription = jobject2.getJSONArray("weatherDesc").getJSONObject(j).getString("value");
}
wind.setText(windSpeed+ " m/s");
windDirection.setText(windDirections+ "\u00B0");
humidity.setText(airHumidity+ " %");
pressure.setText(airPressure+ " hPa");
weather.setText(weatherDescription);
temp.setText(new DecimalFormat("#").format(jarrayConditions.getJSONObject(i).getDouble("temp_C"))
+ "\u2103");
}
JSONArray jarrayWeather = jobject.getJSONArray("weather");
for(int i = 0;i < jarrayWeather.length();i++){
JSONObject jobject3 = jarrayWeather.getJSONObject(i);
String daysTempsH = jobject3.getString("tempMaxC");
String daysTempsL = jobject3.getString("tempMinC");
String date = jobject3.getString("date");
for(int j = 0; j < jobject3.getJSONArray("weatherIconUrl").length();j++){
weatherUrl = jobject3.getJSONArray("weatherIconUrl").getJSONObject(j).getString("value");
}
mArrayHigh.add(daysTempsH);
mArrayLow.add(daysTempsL);
mArrayImage.add(weatherUrl);
mArrayDate.add(date);
}
min.setText("L "+mArrayLow.get(0)+ "\u2103");
max.setText("H "+mArrayHigh.get(0)+ "\u2103");
tvDay1L.setText("L "+mArrayLow.get(1)+ "\u2103");
tvDay1H.setText("H "+mArrayHigh.get(1)+ "\u2103");
calender.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(mArrayDate.get(1)));
tvDay1.setText(getDayOfWeek(calender.get(Calendar.DAY_OF_WEEK)));
String imageUrl1 = mArrayImage.get(1);
ImageLoader.getInstance()
.displayImage(imageUrl1, day1Icon, options);
tvDay2L.setText("L "+mArrayLow.get(2)+ "\u2103");
tvDay2H.setText("H "+mArrayHigh.get(2)+ "\u2103");
calender.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(mArrayDate.get(2)));
tvDay2.setText(getDayOfWeek(calender.get(Calendar.DAY_OF_WEEK)));
String imageUrl2 = mArrayImage.get(2);
ImageLoader.getInstance()
.displayImage(imageUrl2, day2Icon, options);
tvDay3L.setText("L "+mArrayLow.get(3)+ "\u2103");
tvDay3H.setText("H "+mArrayHigh.get(3)+ "\u2103");
calender.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(mArrayDate.get(3)));
tvDay3.setText(getDayOfWeek(calender.get(Calendar.DAY_OF_WEEK)));
String imageUrl3 = mArrayImage.get(2);
ImageLoader.getInstance()
.displayImage(imageUrl3, day3Icon, options);
tvDay4L.setText("L "+mArrayLow.get(4));
tvDay4H.setText("H "+mArrayHigh.get(4));
calender.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(mArrayDate.get(4)));
tvDay4.setText(getDayOfWeek(calender.get(Calendar.DAY_OF_WEEK)));
String imageUrl4 = mArrayImage.get(4);
ImageLoader.getInstance()
.displayImage(imageUrl4, day4Icon, options);
}catch(Exception e){
e.printStackTrace();
}
}
感谢您的回答,但它没有工作 – user1534409
工作d对我来说:) – NarendraJi