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;
}
}
              
                                            
                                
            
 
            
                 6 trang
6 trang | 
Chia sẻ: tieuaka001 | Lượt xem: 730 | Lượt tải: 0 
              
            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:
 mad_lab08_asyntask_xml_json_4698.pdf mad_lab08_asyntask_xml_json_4698.pdf