ݺߣ

ݺߣShare a Scribd company logo
ANDROID APPLICATION
          DEVELOPMENT
                         Working with DATA




hoccungdoanhnghiep.com
Nội dung
 Data Storage in Android
 Shared Preferences
 SQLite database




hoccungdoanhnghiep.com
Data Storage in Android
 Android cung cấp nhiều cơ chế để lưu dữ liệu,
  và tùy vào nhu cầu mà LTV lựa chọn phương
  án hợp lý
 Các cơ chế lưu dữ liệu:
   Shared Preferences: Dùng để lưu các dữ liệu
    nguyên thủy ở dạng cặp: key/value
   Internal Storage: Lưu dữ liệu trên bộ nhớ trong
    của thiết bị
   External Storage: Lưu trữ dữ liệu ở bộ nhớ ngoài
    (thẻ nhớ, external mounted partition)
   SQLite database: lưu dữ liệu ở dạng có cấu trúc
    trong một cơ sở dữ liệu
hoccungdoanhnghiep.com
   Network connection: kết nối đến server mạng và
Shared Preferences
 Class SharedPreferences cung cấp sẵn bộ
  framework để save & get ra cặp key-value đã
  lưu trước đó
 Các dạng dữ liệu cơ bản được dùng với share-
  pref: int, string, float, long, boolean




hoccungdoanhnghiep.com
SharedPreferences -> lưu/edit data
 Khai báo string refPath ảo để truy xuất data: String PREF_MY_INFO_PATH =
  "vn.com.smartservice.myinfo”
 Khai báo các key string để lưu values tương ứng
    String PREF_NAME = "PREF_NAME”
    String PREF_AGE = "PREF_AGE”
    String PREF_SEX = "PREF_SEX”
 Ở activity L6DataStorageActivity, cần save data, thực hiện các việc sau:
    Khởi tạo object của class SharePreference: SharedPreferences myinfosets
     = getSharedPreferences(PREF_MY_INFO_PATH , 0);
    Khởi tạo object editor có khả năng save data: SharedPreferences.Editor
     editor = myinfosets.edit();
    save data bằng cách gọi lệnh put[TypeOfData](key, value)
       editor.putBoolean(PREF_SEX, true/false);
       editor.commit(); // save data




    hoccungdoanhnghiep.com
SharedPreferences -> get saved data
 Ở activity ViewMyInfo, ta lấy ra data đã lưu sẵn từ trước. Thực hiện
  các việc sau:
    Khởi tạo object của class SharePreference:
     SharedPreferences myinfosets =
     getSharedPreferences(PREF_MY_INFO_PATH , 0);
    Dùng obj đó để get ra data tương ứng đã được lưu:
    boolean sex = myinfosets.getBoolean(PREF_SEX, false); //
     trong trường hợp tìm không thấy dữ liệu đã được lưu, false
     sẽ được tự động trả về
    Tương tự cho các kiểu data khác




 hoccungdoanhnghiep.com
Sử dụng SQLite database
 Android hỗ trợ hoàn toàn SQLite databases: create db, create
  table, insert, delete, update, select.
 SQLite db, tham khảo: http://www.sqlite.org/
 Các datatypes cung cấp bởi sqlite:
  http://www.sqlite.org/datatypes.html
 Cách tốt nhất là thừa kế từ lớp SQLiteOpenHelper để thao tác với
  db:
   Ở thời điểm onCreate, db chỉ được tạo mới khi chưa
    tồn tại db nào
   Đưa vào khởi tạo các bảng ở onCreate
   Db không được load lên cho đến khi có một yêu cầu
    truy xuất vào db
 Để read/write với db, gọi vào các hàm getWritableDatabase() và
  getReadableDatabase()
   hoccungdoanhnghiep.com
Tạo lớp xử lý db thừa kế SQLiteOpenHelper
 File > New > Class
   Name: DatabaseHelper
   Package: vn.com.smartservice.lib
   SupperClass: SQLiteOpenHelper
   Mở file DatabaseHelper.java vừa tạo, Override
    các hàm onCreate, onUpgrade để sử dụng
 File > New > Class > MyNoteAdapter.java
   Class MyNoteAdapter.java sẽ đóng vai trò layer
    để access db
   Viết các hàm để truy xuất, insert,… dữ liệu cần
    thiết

hoccungdoanhnghiep.com
Tạo mới SQLite database
 Mở file DatabaseHelper.java:
   Override hàm onCreate
   Chạy query để khởi tạo db: "CREATE TABLE
    mynotes (id INTEGER PRIMARY KEY
    AUTOINCREMENT, title TEXT, content TEXT);"




hoccungdoanhnghiep.com
Write dữ liệu vào db
  Để write dữ liệu, phải đọc vào db ở dạng
   writetable thông qua việc gọi hàm:
   getWritableDatabase():
     Mở file MyNoteAdapter.java
     Create method: createNote(String title, String content) làm
       các việc sau:
         kết nối đến db dạng write: DatabaseHelper.
          getWritableDatabase()
         Tạo object của đối tượng ContentValues để put vào set
          các data: ContentValues cv = new ContentValues();
         put data vào:
           o cv.put("title", title);
           o cv.put("content", content);
         gọi lệnh insert dữ liệu: db.insert(tên-bảng,null,cv)
hoccungdoanhnghiep.com
         Đóng kết nối bằng cách gọi vào db.close()
Lấy dữ liệu từ db ra
  Android sử dụng lớp Cursor để lưu dữ liệu đã lấy
   được từ db ra. Cursor đóng vai trò là 1 result set
  Mở file MyNoteAdapter.java
  Create method: getNote()
     Query db: database.rawQuery("select * from mynotes
       ", null);
  Từ kết quả trả về, lấy ra dữ liệu dòng đầu tiên và
    hiển thị: Toast.makeText(getApplicationContext(),
    c.getString(1) + "," + c.getString(2), 5)



  Cần chú ý, trong quá trình read data, cần phải giữ
    connection luôn mở. Do đó, chỉ để đọc dữ liệu, ta
hoccungdoanhnghiep.com
Sử dụng db đã tạo sẵn
  Copy file db đã tạo vào thư mục /assets/ trong
   project
  Khi thực hiện truy cập db, ta phải copy db này vào
   thư mục: /data/data/package-name/databases/
  Sau khi copy thành công, việc truy cập có thể
   được thực hiện




hoccungdoanhnghiep.com
Bài tập về nhà
 Phát triển tiếp phần MyInfo:
   Thay việc gõ age = thanh seekbar
   Đổi màn hình hiển thị My Info lên trước, thông báo
    người dùng chưa đưa info vào
   Thêm Toast thông báo kết quả


 Phát triển tiếp phần My Note
   Viết hàm lấy ra MyNote có id bất kỳ đã save
   Hiển thi lên màn hình
   Edit note đó
   Save
   Thêm Toast thông báo việc save đã hoàn tất/có lỗi
hoccungdoanhnghiep.com
Tham khảo
  http://developer.android.com/guide/topics/data/data-storag




hoccungdoanhnghiep.com
Ad

Recommended

Data storage Android
Data storage Android
royalknight2902
Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03
Thanh Điền
6.adapterset
6.adapterset
Dao Uit
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
MasterCode.vn
Web301 slide 6
Web301 slide 6
tuanduongcntt
Cach su dung data reader
Cach su dung data reader
Thích Đá Bóng
Zend db
Zend db
robinvnxxx
5.cach su dung data reader
5.cach su dung data reader
Dao Uit
04 chuong 4 - databinding
04 chuong 4 - databinding
truong le hung
ado.net
ado.net
phonghoatin
03 chuong 3 - data sets
03 chuong 3 - data sets
truong le hung
ôn tập dbms
ôn tập dbms
Bec Ten Van
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
MasterCode.vn
Chuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto it
bamboosky4991
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
KhanhPham
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
KhanhPham
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
KhanhPham
csdl-trigger
csdl-trigger
kikihoho
Aspnet 3.5 _02
Aspnet 3.5 _02
Duong Nguyen
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
MasterCode.vn
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
MasterCode.vn
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
Phuoc Nguyen
Basic Sqlite in Android
Basic Sqlite in Android
yuchi_1k91 Pit
Thuc tap tuan 4
Thuc tap tuan 4
Văn Tiến
Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
Trong bài viết hôm nay
Trong bài viết hôm nay
ledoanduc
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
Thanh Tuan Ngo
Bài 8: ListView & Binding
Bài 8: ListView & Binding
hoccungdoanhnghiep
Android report
Android report
Minh Đệ

More Related Content

What's hot (13)

04 chuong 4 - databinding
04 chuong 4 - databinding
truong le hung
ado.net
ado.net
phonghoatin
03 chuong 3 - data sets
03 chuong 3 - data sets
truong le hung
ôn tập dbms
ôn tập dbms
Bec Ten Van
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
MasterCode.vn
Chuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto it
bamboosky4991
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
KhanhPham
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
KhanhPham
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
KhanhPham
csdl-trigger
csdl-trigger
kikihoho
Aspnet 3.5 _02
Aspnet 3.5 _02
Duong Nguyen
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
MasterCode.vn
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
MasterCode.vn
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
MasterCode.vn
Chuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto it
bamboosky4991
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
KhanhPham
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
KhanhPham
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
KhanhPham
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
MasterCode.vn
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
MasterCode.vn

Similar to Bài 6: Working with DATA (20)

Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
Phuoc Nguyen
Basic Sqlite in Android
Basic Sqlite in Android
yuchi_1k91 Pit
Thuc tap tuan 4
Thuc tap tuan 4
Văn Tiến
Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
Thuc tap tuan 4
Thuc tap tuan 4
Trần Nam
Trong bài viết hôm nay
Trong bài viết hôm nay
ledoanduc
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
Thanh Tuan Ngo
Bài 8: ListView & Binding
Bài 8: ListView & Binding
hoccungdoanhnghiep
Android report
Android report
Minh Đệ
Luận Văn Xây Dựng Ứng Dụng Android Lấy Dữ Liệu Mới Trên Hosting Theo Thời Gia...
Luận Văn Xây Dựng Ứng Dụng Android Lấy Dữ Liệu Mới Trên Hosting Theo Thời Gia...
sividocz
ݺߣ create databases_linh
ݺߣ create databases_linh
khacthuong2008
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Dlinh Truong
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
zzsunzz
Vb6 16 (15)
Vb6 16 (15)
Học Huỳnh Bá
J2 me 07_4
J2 me 07_4
vanliemtb
Hbase, Cách thức lưu trữ và tìm kiếm
Hbase, Cách thức lưu trữ và tìm kiếm
Tuan Bach Van
Bttrinh tin hoc dai cuong
Bttrinh tin hoc dai cuong
nnguyenphuongg
7.databinding
7.databinding
Dao Uit
Hdth08 ltudql02-linq
Hdth08 ltudql02-linq
Dũng Đinh
Đề tài: Ứng dụng Android lấy dữ liệu mới theo thời gian trực, 9đ
Đề tài: Ứng dụng Android lấy dữ liệu mới theo thời gian trực, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
Phuoc Nguyen
Trong bài viết hôm nay
Trong bài viết hôm nay
ledoanduc
Luận Văn Xây Dựng Ứng Dụng Android Lấy Dữ Liệu Mới Trên Hosting Theo Thời Gia...
Luận Văn Xây Dựng Ứng Dụng Android Lấy Dữ Liệu Mới Trên Hosting Theo Thời Gia...
sividocz
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Dlinh Truong
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net...
zzsunzz
Hbase, Cách thức lưu trữ và tìm kiếm
Hbase, Cách thức lưu trữ và tìm kiếm
Tuan Bach Van
Ad

Recently uploaded (20)

Đạo Trị Quốc - An bang và 10 thông điệp của đấng tạo hóa tối cao - Đặng Lê Ng...
Đạo Trị Quốc - An bang và 10 thông điệp của đấng tạo hóa tối cao - Đặng Lê Ng...
Chu Văn Đức
quan tri chat luong chuong trinh thac si
quan tri chat luong chuong trinh thac si
VonThKhoaNgoiNg
ươԲ3岵ửiԳ󱹾4444444444444444444
ươԲ3岵ửiԳ󱹾4444444444444444444
trang103525
03a. TỪ ĐIỂN NĂNG LỰC NHÂN VIÊN TRUYỀN THÔNG.docx
03a. TỪ ĐIỂN NĂNG LỰC NHÂN VIÊN TRUYỀN THÔNG.docx
nhungcao2689
BỘ ĐỀ THI THỬ VÀO 10 MÔN TIẾNG ANH - CÁC SỞ GIÁO DỤC THEO CHƯƠNG TRÌNH GDPT 2...
BỘ ĐỀ THI THỬ VÀO 10 MÔN TIẾNG ANH - CÁC SỞ GIÁO DỤC THEO CHƯƠNG TRÌNH GDPT 2...
Nguyen Thanh Tu Collection
ho chi minh ideology for university learning
ho chi minh ideology for university learning
NguytHi7
20 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 7 - CÁC TỈNH NĂM 2023 - 2025 (CÓ ĐÁP ÁN CHI...
20 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 7 - CÁC TỈNH NĂM 2023 - 2025 (CÓ ĐÁP ÁN CHI...
Nguyen Thanh Tu Collection
Describe the picture to practice speaking skills
Describe the picture to practice speaking skills
GraceHo68
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
Nguyen Thanh Tu Collection
9. Pháp luật trong hệ thống các công cụ.pptx
9. Pháp luật trong hệ thống các công cụ.pptx
nguyenngockhanh17022
Tinh thần tam giáo: Nho - Phật - Đạo
Tinh thần tam giáo: Nho - Phật - Đạo
Chu Văn Đức
Bai 5 Thuc hanh Xac dinh do pH cua dat bang phuong phap so mau.ppt
Bai 5 Thuc hanh Xac dinh do pH cua dat bang phuong phap so mau.ppt
pquanghuy1204
30 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 9 - CÁC TỈNH NĂM 2024 - 2025 (CÓ ĐÁP ÁN CHI...
30 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 9 - CÁC TỈNH NĂM 2024 - 2025 (CÓ ĐÁP ÁN CHI...
Nguyen Thanh Tu Collection
BÀI TẬP BỔ TRỢ TIẾNG ANH 12 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 12 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
Nguyen Thanh Tu Collection
20-chuyen-de-ngu-phap-tieng-anh-on-thi-thpt-quoc-gia.pdf
20-chuyen-de-ngu-phap-tieng-anh-on-thi-thpt-quoc-gia.pdf
leogoemmanguyenthao
bai giang mon NHAP MON HOA SINH HOC.pptx
bai giang mon NHAP MON HOA SINH HOC.pptx
TuongHoang19
Hai thiên mệnh vĩ đại hợp nhất - Đặng Lê Nguyên Vũ
Hai thiên mệnh vĩ đại hợp nhất - Đặng Lê Nguyên Vũ
Chu Văn Đức
Đạo Trường Xuân - Trường Thọ: Mặc Khải của đấng tối cao tạo hóa - Đặng Lê Ngu...
Đạo Trường Xuân - Trường Thọ: Mặc Khải của đấng tối cao tạo hóa - Đặng Lê Ngu...
Chu Văn Đức
vàng-da-do-tăng-bilirubin-gián-tiếp-go-go-br-br (1).pptx
vàng-da-do-tăng-bilirubin-gián-tiếp-go-go-br-br (1).pptx
BoQucNguyn9
Thành phố mẫu mực - Cộng đồng tỉnh thức - Đặng Lê Nguyên Vũ
Thành phố mẫu mực - Cộng đồng tỉnh thức - Đặng Lê Nguyên Vũ
Chu Văn Đức
Đạo Trị Quốc - An bang và 10 thông điệp của đấng tạo hóa tối cao - Đặng Lê Ng...
Đạo Trị Quốc - An bang và 10 thông điệp của đấng tạo hóa tối cao - Đặng Lê Ng...
Chu Văn Đức
quan tri chat luong chuong trinh thac si
quan tri chat luong chuong trinh thac si
VonThKhoaNgoiNg
ươԲ3岵ửiԳ󱹾4444444444444444444
ươԲ3岵ửiԳ󱹾4444444444444444444
trang103525
03a. TỪ ĐIỂN NĂNG LỰC NHÂN VIÊN TRUYỀN THÔNG.docx
03a. TỪ ĐIỂN NĂNG LỰC NHÂN VIÊN TRUYỀN THÔNG.docx
nhungcao2689
BỘ ĐỀ THI THỬ VÀO 10 MÔN TIẾNG ANH - CÁC SỞ GIÁO DỤC THEO CHƯƠNG TRÌNH GDPT 2...
BỘ ĐỀ THI THỬ VÀO 10 MÔN TIẾNG ANH - CÁC SỞ GIÁO DỤC THEO CHƯƠNG TRÌNH GDPT 2...
Nguyen Thanh Tu Collection
ho chi minh ideology for university learning
ho chi minh ideology for university learning
NguytHi7
20 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 7 - CÁC TỈNH NĂM 2023 - 2025 (CÓ ĐÁP ÁN CHI...
20 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 7 - CÁC TỈNH NĂM 2023 - 2025 (CÓ ĐÁP ÁN CHI...
Nguyen Thanh Tu Collection
Describe the picture to practice speaking skills
Describe the picture to practice speaking skills
GraceHo68
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
Nguyen Thanh Tu Collection
9. Pháp luật trong hệ thống các công cụ.pptx
9. Pháp luật trong hệ thống các công cụ.pptx
nguyenngockhanh17022
Tinh thần tam giáo: Nho - Phật - Đạo
Tinh thần tam giáo: Nho - Phật - Đạo
Chu Văn Đức
Bai 5 Thuc hanh Xac dinh do pH cua dat bang phuong phap so mau.ppt
Bai 5 Thuc hanh Xac dinh do pH cua dat bang phuong phap so mau.ppt
pquanghuy1204
30 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 9 - CÁC TỈNH NĂM 2024 - 2025 (CÓ ĐÁP ÁN CHI...
30 ĐỀ THI HỌC SINH GIỎI TIẾNG ANH 9 - CÁC TỈNH NĂM 2024 - 2025 (CÓ ĐÁP ÁN CHI...
Nguyen Thanh Tu Collection
BÀI TẬP BỔ TRỢ TIẾNG ANH 12 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 12 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
Nguyen Thanh Tu Collection
20-chuyen-de-ngu-phap-tieng-anh-on-thi-thpt-quoc-gia.pdf
20-chuyen-de-ngu-phap-tieng-anh-on-thi-thpt-quoc-gia.pdf
leogoemmanguyenthao
bai giang mon NHAP MON HOA SINH HOC.pptx
bai giang mon NHAP MON HOA SINH HOC.pptx
TuongHoang19
Hai thiên mệnh vĩ đại hợp nhất - Đặng Lê Nguyên Vũ
Hai thiên mệnh vĩ đại hợp nhất - Đặng Lê Nguyên Vũ
Chu Văn Đức
Đạo Trường Xuân - Trường Thọ: Mặc Khải của đấng tối cao tạo hóa - Đặng Lê Ngu...
Đạo Trường Xuân - Trường Thọ: Mặc Khải của đấng tối cao tạo hóa - Đặng Lê Ngu...
Chu Văn Đức
vàng-da-do-tăng-bilirubin-gián-tiếp-go-go-br-br (1).pptx
vàng-da-do-tăng-bilirubin-gián-tiếp-go-go-br-br (1).pptx
BoQucNguyn9
Thành phố mẫu mực - Cộng đồng tỉnh thức - Đặng Lê Nguyên Vũ
Thành phố mẫu mực - Cộng đồng tỉnh thức - Đặng Lê Nguyên Vũ
Chu Văn Đức
Ad

Bài 6: Working with DATA

  • 1. ANDROID APPLICATION DEVELOPMENT Working with DATA hoccungdoanhnghiep.com
  • 2. Nội dung  Data Storage in Android  Shared Preferences  SQLite database hoccungdoanhnghiep.com
  • 3. Data Storage in Android  Android cung cấp nhiều cơ chế để lưu dữ liệu, và tùy vào nhu cầu mà LTV lựa chọn phương án hợp lý  Các cơ chế lưu dữ liệu:  Shared Preferences: Dùng để lưu các dữ liệu nguyên thủy ở dạng cặp: key/value  Internal Storage: Lưu dữ liệu trên bộ nhớ trong của thiết bị  External Storage: Lưu trữ dữ liệu ở bộ nhớ ngoài (thẻ nhớ, external mounted partition)  SQLite database: lưu dữ liệu ở dạng có cấu trúc trong một cơ sở dữ liệu hoccungdoanhnghiep.com  Network connection: kết nối đến server mạng và
  • 4. Shared Preferences  Class SharedPreferences cung cấp sẵn bộ framework để save & get ra cặp key-value đã lưu trước đó  Các dạng dữ liệu cơ bản được dùng với share- pref: int, string, float, long, boolean hoccungdoanhnghiep.com
  • 5. SharedPreferences -> lưu/edit data  Khai báo string refPath ảo để truy xuất data: String PREF_MY_INFO_PATH = "vn.com.smartservice.myinfo”  Khai báo các key string để lưu values tương ứng  String PREF_NAME = "PREF_NAME”  String PREF_AGE = "PREF_AGE”  String PREF_SEX = "PREF_SEX”  Ở activity L6DataStorageActivity, cần save data, thực hiện các việc sau:  Khởi tạo object của class SharePreference: SharedPreferences myinfosets = getSharedPreferences(PREF_MY_INFO_PATH , 0);  Khởi tạo object editor có khả năng save data: SharedPreferences.Editor editor = myinfosets.edit();  save data bằng cách gọi lệnh put[TypeOfData](key, value)  editor.putBoolean(PREF_SEX, true/false);  editor.commit(); // save data hoccungdoanhnghiep.com
  • 6. SharedPreferences -> get saved data  Ở activity ViewMyInfo, ta lấy ra data đã lưu sẵn từ trước. Thực hiện các việc sau:  Khởi tạo object của class SharePreference: SharedPreferences myinfosets = getSharedPreferences(PREF_MY_INFO_PATH , 0);  Dùng obj đó để get ra data tương ứng đã được lưu:  boolean sex = myinfosets.getBoolean(PREF_SEX, false); // trong trường hợp tìm không thấy dữ liệu đã được lưu, false sẽ được tự động trả về  Tương tự cho các kiểu data khác hoccungdoanhnghiep.com
  • 7. Sử dụng SQLite database  Android hỗ trợ hoàn toàn SQLite databases: create db, create table, insert, delete, update, select.  SQLite db, tham khảo: http://www.sqlite.org/  Các datatypes cung cấp bởi sqlite: http://www.sqlite.org/datatypes.html  Cách tốt nhất là thừa kế từ lớp SQLiteOpenHelper để thao tác với db:  Ở thời điểm onCreate, db chỉ được tạo mới khi chưa tồn tại db nào  Đưa vào khởi tạo các bảng ở onCreate  Db không được load lên cho đến khi có một yêu cầu truy xuất vào db  Để read/write với db, gọi vào các hàm getWritableDatabase() và getReadableDatabase() hoccungdoanhnghiep.com
  • 8. Tạo lớp xử lý db thừa kế SQLiteOpenHelper  File > New > Class  Name: DatabaseHelper  Package: vn.com.smartservice.lib  SupperClass: SQLiteOpenHelper  Mở file DatabaseHelper.java vừa tạo, Override các hàm onCreate, onUpgrade để sử dụng  File > New > Class > MyNoteAdapter.java  Class MyNoteAdapter.java sẽ đóng vai trò layer để access db  Viết các hàm để truy xuất, insert,… dữ liệu cần thiết hoccungdoanhnghiep.com
  • 9. Tạo mới SQLite database  Mở file DatabaseHelper.java:  Override hàm onCreate  Chạy query để khởi tạo db: "CREATE TABLE mynotes (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT);" hoccungdoanhnghiep.com
  • 10. Write dữ liệu vào db  Để write dữ liệu, phải đọc vào db ở dạng writetable thông qua việc gọi hàm: getWritableDatabase():  Mở file MyNoteAdapter.java  Create method: createNote(String title, String content) làm các việc sau:  kết nối đến db dạng write: DatabaseHelper. getWritableDatabase()  Tạo object của đối tượng ContentValues để put vào set các data: ContentValues cv = new ContentValues();  put data vào: o cv.put("title", title); o cv.put("content", content);  gọi lệnh insert dữ liệu: db.insert(tên-bảng,null,cv) hoccungdoanhnghiep.com  Đóng kết nối bằng cách gọi vào db.close()
  • 11. Lấy dữ liệu từ db ra  Android sử dụng lớp Cursor để lưu dữ liệu đã lấy được từ db ra. Cursor đóng vai trò là 1 result set  Mở file MyNoteAdapter.java  Create method: getNote()  Query db: database.rawQuery("select * from mynotes ", null);  Từ kết quả trả về, lấy ra dữ liệu dòng đầu tiên và hiển thị: Toast.makeText(getApplicationContext(), c.getString(1) + "," + c.getString(2), 5)  Cần chú ý, trong quá trình read data, cần phải giữ connection luôn mở. Do đó, chỉ để đọc dữ liệu, ta hoccungdoanhnghiep.com
  • 12. Sử dụng db đã tạo sẵn  Copy file db đã tạo vào thư mục /assets/ trong project  Khi thực hiện truy cập db, ta phải copy db này vào thư mục: /data/data/package-name/databases/  Sau khi copy thành công, việc truy cập có thể được thực hiện hoccungdoanhnghiep.com
  • 13. Bài tập về nhà  Phát triển tiếp phần MyInfo:  Thay việc gõ age = thanh seekbar  Đổi màn hình hiển thị My Info lên trước, thông báo người dùng chưa đưa info vào  Thêm Toast thông báo kết quả  Phát triển tiếp phần My Note  Viết hàm lấy ra MyNote có id bất kỳ đã save  Hiển thi lên màn hình  Edit note đó  Save  Thêm Toast thông báo việc save đã hoàn tất/có lỗi hoccungdoanhnghiep.com
  • 14. Tham khảo  http://developer.android.com/guide/topics/data/data-storag hoccungdoanhnghiep.com