Я создаю приложение, которое будет обновлять данные о погоде в городе. Цикл будет списком города. Так что я хочу, чтобы в нем были такие города, как List.I буду использовать метод AsyncTask, чтобы отправить запрос и проанализировать его. И в то же время я раздуваю макет, и я должен поместить все данные о погоде, соответствующие городу в макете. Как я могу достичь этого, пожалуйста, помогите мне в этом.AsyncTask в петле в Android
XML файл, который я накачивания
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/depart_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/flight_depart_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:padding="3dip"
android:layout_marginTop="10dp"
android:src="@drawable/f1" />
<TextView
android:id="@+id/depart_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/flight_depart_image"
android:text=""
android:textColor="#666666"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/depart_airport_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/depart_time"
android:text=""
android:textColor="#666666"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/depart_airport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/depart_airport_city"
android:layout_marginLeft="125dp"
android:text="N/A"
android:textColor="#666666"
android:textSize="12sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/weather_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft ="40dp"
android:layout_toRightOf="@+id/depart_airport"
android:src="@drawable/image" />
<TextView
android:id="@+id/tempraturetext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/weather_image"
android:text="Temp:" />
<TextView
android:id="@+id/temprature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/tempraturetext"
android:text="20℃" />
<TextView
android:id="@+id/humidity_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/temprature"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/weather_image"
android:text="Humidity:" />
<TextView
android:id="@+id/humidity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/temprature"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/humidity_text"
android:text="32" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/depart_airport"
android:layout_marginTop="5dp"
android:background="#d3d3d3" >
</LinearLayout>
эту функцию я создал, чтобы отправить запрос
private WeatherResponse requestWeatherUpdate(String location) {
url = "" + location; //This location will be dyanamic and multiple
Log.d("URL for Weather Upadate", url);
WeatherUpdate weatherReq = new WeatherUpdate(new CallBack() {
@Override
public void run(Object result) {
try {
AppResponse = (String) result;
response = ParseWeatherResponseXML
.parseMyTripXML(AppResponse);
} catch (Exception e) {
Log.e("TAG Exception Occured",
"Exception is " + e.getMessage());
}
}
});
weatherReq.execute(url);
return response;
}
AsynkTask
public class WeatherUpdate extends AsyncTask<String, Void, String> {
Context context;
CallBack callBack;
public WeatherUpdate(CallBack callBack) {
this.callBack = callBack;
}
@Override
protected String doInBackground(String... arg0) {
String responseString = "";
HttpClient client = null;
try {
client = new DefaultHttpClient();
HttpGet get = new HttpGet(IweenTripDetails.url);
client.getParams().setParameter("http.socket.timeout", 6000);
client.getParams().setParameter("http.connection.timeout", 6000);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
responseString = EntityUtils.toString(resEntityGet);
Log.i("GET RESPONSE", responseString.trim());
}
} catch (Exception e) {
Log.d("ANDRO_ASYNC_ERROR", "Error is " + e.toString());
}
Log.d("ANDRO_ASYNC_RESPONSE", responseString.trim());
client.getConnectionManager().shutdown();
return responseString.trim();
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
callBack.run(result);
}
}
это должен быть комментарий –
как я буду называть это в цикле см. Обновленный вопрос –