BÁO CÁO THỰC TẬP-Chương trình sử dụng webservice lấy thông tin về tất cả thông tin động đất trên thế giới và show lên giao diện - Pdf 27

TRUNG TÂM TIN HOC – ĐẠI HỌC KHOA HỌC TỰ NHIÊN – ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ
MINH
Bộ Phận Lập Trình Di Động – Lập Trình Android
Báo Cáo Tốt Nghiệp Khóa Lập Trình Android Cơ Bản
Đề Tài:

Học Viên:Nguyễn Xuân Dương
Huỳnh Đức Vinh
Lớp:Android tối 2,4,6
Giáo Viên:Bùi Quốc Ánh

Nội Dung:
I.Giới thiệu
1.Đề tài
Chương trình sử dụng webservice lấy thông tin về tất cả thông tin động đất
trên thế giới và show lên giao diện.
2.Phân tích và mô tả đề tài
Đề tài sẽ thực hiện những yêu cầu sau:
a.Xử lý:
_Gửi requests lên service để lấy thông tin về động đất từ server về.
_Xử lý thông tin lấy về (cắt những thông tin cần lấy bao gồm ngày, nơi,
matitude ,latitude và longtitude) rồi lưu vào contentprovider.
_Các thao tác lấy data và lưu data ở trên sẽ được thực hiện thông qua 1
service chạy ngầm.
_Listview (main Activity)sẽ dùng để hiển thị thông tin động đất lên màn
hình .Listview sẽ lấy dữ liệu từ content provider.
b.Chức năng:
_Khi click vào 1 row trên listview sẽ hiển thị thông tin chi tiết của trận động
đất thông qua đối tượng dialog.
_Khi click menu (option menu) sẽ có 2 chức năng là refresh và references
.Refresh dung để load lại dữ liệu từ data lên listview .Chức năng reference dung để

Element titleElement = (Element) titleList.item(0);
titleList = titleElement.getChildNodes();
String details=((Node) titleList.item(0)).getNodeValue();
String magnitudeString = details.split(" ")[1];
int end = magnitudeString.length()-1;
double magnitude =
Double.parseDouble(magnitudeString.substring(0, end));
details = details.split(",")[1].trim();

NodeList dateList = fstElmnt.getElementsByTagName("updated");
Element dateElement = (Element) dateList.item(0);
dateList = dateElement.getChildNodes();
String dd=((Node)dateList.item(0)).getNodeValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-
dd'T'hh:mm:ss'Z'");
Date qdate = new GregorianCalendar(0,0,0).getTime();
try {
qdate = sdf.parse(dd);
} catch (ParseException e) {
e.printStackTrace();
}
NodeList linkList = fstElmnt.getElementsByTagName("link");
Element linkElement = (Element) linkList.item(0);
linkList = linkElement.getChildNodes();
String link1=linkElement.getAttribute("href");
Quake quake=new Quake(qdate, details, l,magnitude, link1);
//lay 1 doi tuong moi ve
addNewQuake(quake);
}
} catch (Exception e) {

private double magnitude;
private String link;
_EarthQuake2011V1Activity class: là một main Activity dùng để hiển thị
thông tin của Quakes lên màn hình.
EarthQuake2011V1Activity
_updateData()
+Start service
_updateFromReference()
+Lấy các thông số lưu vào references trong lớp Reference để filter ,xử lý.
Internet
Qake
_addQuakeToArray()
+add 1 đối tượng quake vào earthquakes array.
_loadQuakeFromProvider()
+Lấy dữ liệu từ provider lên theo từng row rồi đổ vào đối tượng quake(1 row
trong provider sẽ được lưu vào 1 quake )tiếp đó là add quake vào quakes array
(thông qua hàm addQuakeToArray())
_EarthQuakeBroadCastReceiver class:lớp này này kế thừa từ BroadcastReceiver
dùng để bắt lấy intent bắn lên từ sevice khi có 1 quakes mới được update.
Ngoài các phương thức trên thì lớp này còn override lại 1 số phương thức của
Activity để tạo option menu,và dialog.
_EarthQuakeProvider class:lớp này kế thừa từ Contentprovider class dùng
để tạo database và cung cấp 1 số phương thức để thao tác dữ liệu.
// Column Names
public static final String KEY_ID = "_id";
public static final String KEY_DATE = "date";
public static final String KEY_DETAILS = "details";
public static final String KEY_LOCATION_LAT = "latitude";
public static final String KEY_LOCATION_LNG = "longitude";
public static final String KEY_MAGNITUDE = "magnitude";

_backgroundRefresh() là 1 Runable
+Override hàm void run() và thực thi phương thức doFreshEarthQuakes().
_TimerTask doRefresh()
+Thực thi phương thức refreshEarthquakes() trong hàm run .
_onStart()
+ Các hàm trên sẽ được sử dụng khi ta chọn chế độ auto update trong
References.Nếu không update tự động thì sẽ gọi hàm doRefreshEarthQuake()
_doRefreshEarthQuake():
+Sẽ thực hiện kết nối với server để lấy dữ liệu về sau khi lấy về sẽ đổ dữ liệu
vào đối tượng Quake rồi add vào provider.
_addNewQuake()
+Hàm này dùng để add dữ liệu vào provider
_announceNewQuake()
+Hàm này sẽ được bắn lên nếu có 1 quake mới được lưu vào provider
+Trong hàm này ta thực thi 1 status notification để khi có 1 quake mới được
cập nhật thì status này sẽ bắn lên thông báo cho người dùng biết.
2.Giao diện
a.Màn hình chính: sẽ hiển thị danh sách các earthquakes

class="bi x5 y9e w3 hf"
b.EarthQuake details:khi click vào 1 row trên listview sẽ hiển thị dialog để show
details

c.Option Menu
: gồm 2 chức năng là refresh và reference.Refresh sẽ load lại data từ
provider.Còn Reference thì sẽ set các chết độ auto update và filter theo matitude.
class="bi x5 y9e w3 hf"
*Reference
class="bi x5 y9e w3 hf"
*Màn hình sau khi filter với matitude bằng 5:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status