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 |
Chia sẻ: tieuaka001 | Lượt xem: 524 | 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