Lập trình di động - Lab08: AsynTask, XML, JSON

private class LoadHinhTuInternet extends AsyncTask {

@Override

protected String doInBackground(String. params) {

try {

URL uri = new URL(params[0]);

Bitmap bmp =

BitmapFactory.decodeStream(uri.openConnection().getInputStream());

hinh.setImageBitmap(bmp);

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

pdf6 trang | Chia sẻ: tieuaka001 | Lượt xem: 434 | Lượt tải: 0download
Nội dung tài liệu Lập trình di động - Lab08: AsynTask, XML, JSON, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 1 1 Load hình từ Internet hinh = (ImageView) findViewById(R.id.imageView); 1.1 Hàm load hình từ Internet private class LoadHinhTuInternet extends AsyncTask { @Override protected String doInBackground(String... params) { try { URL uri = new URL(params[0]); Bitmap bmp = BitmapFactory.decodeStream(uri.openConnection().getInputStream()); hinh.setImageBitmap(bmp); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } } 1.2 Gọi Thread trong OnCreate runOnUiThread(new Runnable() { @Override public void run() { new LoadHinhTuInternet() .execute(" g"); } }); Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 2 Chú ý cấp quyền truy cập ra Internet 2 Đọc JSON Dữ liệu JSON chuẩn bị sẵn: Ngoài ra các bạn cũng có thể tạo ra file JSON dùng ngôn ngữ PHP/MySQL hoặc ASP.NET. Yêu cầu: Đọc dữ liệu JSON và trình bày ra ListView Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 3 2.1 Thiết kế giao diện 2.2 Code xử lý @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Lấy lại listview Chủng loại lv = (ListView)findViewById(R.id.lvChungLoai); runOnUiThread(new Runnable() { @Override public void run() { new docJSON() .execute(""); } }); } class docJSON extends AsyncTask { @Override Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 4 protected String doInBackground(String... params) { //Len mang doc tra ve cho bien s return docNoiDung_Tu_URL(params[0]); } @Override protected void onPostExecute(String s) { //Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();//hien thong bao bien s ArrayList arrChungLoai = new ArrayList(); try { JSONArray mang = new JSONArray(s); for(int i = 0; i < mang.length(); i++) { JSONObject loai = mang.getJSONObject(i); arrChungLoai.add( loai.getString("MaLoai") + " : " + loai.getString("TenLoai")); } ArrayAdapter adapter = new ArrayAdapter( MainActivity.this, android.R.layout.simple_list_item_1, arrChungLoai ); lv.setAdapter(adapter); } catch (JSONException e) { e.printStackTrace(); } } } private static String docNoiDung_Tu_URL(String theUrl) { StringBuilder content = new StringBuilder(); try { URL url = new URL(theUrl); URLConnection urlConnection = url.openConnection(); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(urlConnection.getInputStream())); Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 5 String line; while ((line = bufferedReader.readLine()) != null) { content.append(line + "\n"); } bufferedReader.close(); } catch(Exception e) { e.printStackTrace(); } return content.toString(); } Ver 1.0 – 2016, FIT - HCMUP Lab 08: AsynTask, XML, JSON Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM 6 2.3 Demo thử 3 Màn hình xem sản phẩm Tạo listview dạng custom để hiển thị sản phẩm bao gồm: Mã, tên, hình, giá. File trả về dữ liệu sẵn có là: SanPhamJSON.aspx. 4 Đọc RSS

Các file đính kèm theo tài liệu này:

  • pdfmad_lab08_asyntask_xml_json_4698.pdf
Tài liệu liên quan