如何在使用 Asyntask forloop 数据广告时更新 Ui 广告这一行:
final View row2 = createRow2 (school5.getJSONObject(i));
table3.addView(row2);
我正在更新 forloop 中的 UI,但如果我使用 asyntask,我该怎么做?
public class fifthscreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fifthscreen);
parseJSONData();
}
public void parseJSONData() {
SelectMenuAPI = Utils.dishdescription + dish_name;
clearData();
URL = SelectMenuAPI;
URL2 = URL.replace(" ", "%20");
try {
HttpClient client = new DefaultHttpClient();
HttpConnectionParams
.setConnectionTimeout(client.getParams(), 15000);
HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
HttpUriRequest request = new HttpGet(URL2);
HttpResponse response = client.execute(request);
InputStream atomInputStream = response.getEntity().getContent();
BufferedReader in = new BufferedReader(new InputStreamReader(
atomInputStream));
String line;
String str = "";
while ((line = in.readLine()) != null) {
str += line;
}
final LinearLayout table3 = (LinearLayout) findViewById(R.id.table3);
JSONArray school5 = json2.getJSONArray("dish_ingredient");
for (int i=0; i<school5.length(); i++) {
final View row2 = createRow2 (school5.getJSONObject(i));
table3.addView(row2);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
// IOConnect = 1;
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public View createRow2(JSONObject item) throws JSONException {
View row2 = getLayoutInflater().inflate(R.layout.row2, null);
((TextView) row2.findViewById(R.id.name)).setText(item.getString("name"));
((TextView)
row2.findViewById(R.id.subingredients)).setText(item.getString("sub_ingredients"));
return row2;
}
如何在 postexecute 中像这样更新 Ui
public class getDataTask extends AsyncTask<Void, Void, Void>{
getDataTask(){
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO Auto-generated method stub
parseJSONData();
return null;
}
@Override
protected void onPostExecute(Void result) {
}
}
如何在其中显示这两行onPostExecute
// final View row2 = createRow2 (school5.getJSONObject(i));
// table3.addView(row2);