Flower[] flowerArray;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
String json = (String) msg.obj;
flowerArray = parseJsonMulti(json);
ListView lv_hh = (ListView) findViewById(R.id.lv_hh);
lv_hh.setAdapter(new HomeAdapter());
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ThreadUtil.runThread();// 設置線程策略
Thread t = new Thread(new getJSON());
t.start();
}
private class HomeAdapter extends BaseAdapter {
@Override
public int getCount() {
return flowerArray.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(),
R.layout.main_item, null);
TextView tvname = (TextView) view.findViewById(R.id.tv_name);
TextView tvid = (TextView) view.findViewById(R.id.tv_id);
Flower flower = flowerArray[position];
tvid.setText(flower.getId()+"");
tvname.setText(flower.getName());
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
class getJSON implements Runnable {
@Override
public void run() {
String strResult = connServerForResult(url);
Message msg = new Message();
msg.obj = strResult;
handler.sendMessage(msg);
}
}
private String connServerForResult(String strUrl) {
// HttpGet對象
HttpGet httpRequest = new HttpGet(strUrl);
String strResult = "";
try {
// HttpClient對象
HttpClient httpClient = new DefaultHttpClient();
// 獲得HttpResponse對象
HttpResponse httpResponse = httpClient.execute(httpRequest);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 取得返回的數據
strResult = EntityUtils.toString(httpResponse.getEntity());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return strResult;
}
private Flower[] parseJsonMulti(String strResult) {
Flower[] json = null;
try {
JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("rows");
json = new Flower[jsonObjs.length()];
for (int i = 0; i < jsonObjs.length(); i++) {
JSONObject jsonObjkkk = (JSONObject) jsonObjs.opt(i);
Flower flower = new Flower();
flower.setId(Integer.valueOf(jsonObjkkk.getString("id")));
flower.setName(jsonObjkkk.getString("name"));
json[i] = flower;
}
return json;
} catch (JSONException e) {
System.out.println("Jsons parse error !");
e.printStackTrace();
return null;
}
}