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

Đăng ngày | Thể loại: | Lần tải: 0 | Lần xem: 0 | Page: 6 | FileSize: M | File type: PDF
of x

Lập trình di động - Lab 08: AsynTask,XML,JSON. Nội dung của tài liệu trình bày về load hình từ Internet, hàm load hình từ Internet, gọi Thread trong OnCreate, đọc JSON, thiết kế giao diện, code xử lý, demo thử, màn hình xem sản phẩm và đọc RSS.. Cũng như các tài liệu khác được bạn đọc chia sẽ hoặc do tìm kiếm lại và giới thiệu lại cho các bạn với mục đích tham khảo , chúng tôi không thu tiền từ người dùng ,nếu phát hiện nội dung phi phạm bản quyền hoặc vi phạm pháp luật xin thông báo cho website ,Ngoài giáo án bài giảng này, bạn có thể tải giáo án miễn phí phục vụ nghiên cứu Có tài liệu tải về lỗi font chữ không xem được, thì do máy tính bạn không hỗ trợ font củ, bạn tải các font .vntime củ về cài sẽ xem được.

https://tailieumienphi.vn/doc/lap-trinh-di-dong-lab-08-asyntaskaxmlajson-wymbuq.html

Nội dung


Ver 1.0 – 2016, FIT - HCMUP

Lab 08: AsynTask, XML, JSON

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("http://hcmup.edu.vn/images/stories/site_18/mainsite/daotao.pn
g");
}
});
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM

1

Ver 1.0 – 2016, FIT - HCMUP

Lab 08: AsynTask, XML, JSON

Chú ý cấp quyền truy cập ra Internet

2 Đọc JSON
Dữ liệu JSON chuẩn bị sẵn: http://etouchboard.com/EJSON.aspx

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

Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM

2

Ver 1.0 – 2016, FIT - HCMUP

2.1

Thiết kế giao diện

2.2

Lab 08: AsynTask, XML, JSON

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("http://etouchboard.com/EJSON.aspx");
}
});
}
class docJSON extends AsyncTask {
@Override
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM

3

Ver 1.0 – 2016, FIT - HCMUP

Lab 08: AsynTask, XML, JSON

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()));
Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM

4

Ver 1.0 – 2016, FIT - HCMUP

Lab 08: AsynTask, XML, JSON

String line;
while ((line = bufferedReader.readLine()) != null)
{
content.append(line + "\n");
}
bufferedReader.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return content.toString();
}

Ths. Lương Trần Hy Hiến, KHOA CNTT – TRƯỜNG ĐH SƯ PHẠM TP. HCM

5

1114230