Tải bản đầy đủ (.ppt) (24 trang)

LẬP TRÌNH ANDROI LƯU TRỮ DỮ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (783.37 KB, 24 trang )

Trường ĐH Quang Trung
KHOA CNTT

Lập trình Android
Bài 5: Lưu trữ dữ liệu

2017


Nội dung
1.

Lưu trữ dữ liệu cố định

2.

Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

3.

CSDL SQLite trong ứng dụng android

4.

Lưu trữ dữ liệu trên web

5.

Content Provider

Lập trình Android



2


1. Lưu trữ dữ liệu cố định với shared preferences
 Android cung cấp sẵn một cơ chế đơn giản giúp chúng ta lưu trữ

nhanh dữ liệu


SharedPreference cho phép thực hiện lưu trữ và truy xuất dữ
liệu theo cặp khóa key-value cho các kiểu dữ liệu cơ bản
● Boolean
● Float
● Int
● Long
● String

 Dữ liệu vẫn đảm bảo an toàn ngay cả khi ứng dụng được đóng

hoàn toàn

Lập trình Android – Module 1

3


1. Lưu trữ dữ liệu cố định với shared preferences
 Khai báo truy xuất:
● Có thể sử dụng một trong 2 phương thức sau

 getSharedPreferences: sử dụng truy xuất đến tập tin Preferences đã lưu
trữ bằng cách truyền vào tên tập tin
 getPreferences: truy xuất đến tập tin Preference mặc định tương ứng với
Activity gọi thực thi

● Mặc định tập tin Preference được lưu trữ theo đường dẫn
Data/data//shared_prefs/<file_name>.xm
l

Lập trình Android – Module 1

4


1. Lưu trữ dữ liệu cố định với shared preferences
 Lưu trữ dữ liệu:
● Tạo đối tượng Editor từ phương thức edit() của Preference
● Lưu trữ dữ liệu vào Preference thông qua phương thức put<KDL>:
 putBoolean(Key, Value)
 putFloat(Key, value)
 putInt(Key, value)
 putLong(Key, value)
 putString(Key, value)

● ví dụ

Lập trình Android – Module 1

5



1. Lưu trữ dữ liệu cố định với shared preferences
 Khai báo truy xuất:
● Các giá trị lưu trữ được truy xuất thông qua phương thức
get<KDL>:

 getBoolean(Key, DefValue)
 getFloat(Key, DefValue)
 getInt(Key, DefValue)
 getLong(Key, DefValue)
 getString(Key, DefValue)
Ví dụ:

Lập trình Android – Module 1

6


2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

 Bộ nhớ trong
● Bộ nhớ trong được cấp phát khi ứng dụng được cài đặt trên
thiết bị trên một thư mục riêng biệt.
● Chỉ có ứng dụng mới có thể truy xuất được bộ nhớ của ứng
dụng đó

 Đường dẫn các tập tin được lưu trữ
Data/data//files

 Phương thức truy xuất

getFilesDir-File

Lập trình Android – Module 1

7


2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

 Bộ nhớ trong
● Truy xuất ghi tập tin;
 Gọi phương thức openFileOutput() nhận về dữ liệu stream
cho đối tượng FileOutputStream

● Ghi dữ liệu với phương thức write()
● Đóng stream bằng phương thức close()

 Ví dụ:

Lập trình Android – Module 1

8


2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

 Bộ nhớ trong
● Truy xuất đọc tập tin;
 Gọi phương thức openFileInput() nhận về dữ liệu stream
cho đối tượng FileInputStream


● Đọc dữ liệu với phương thức read()
● Đóng stream bằng phương thức close()

 Ví dụ:

Lập trình Android – Module 1

9


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài
 Truy xuất tập tin được lưu trữ trong drawable

Lập trình Android – Module 1

10


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài

Lập trình Android – Module 1

11


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài


Lập trình Android – Module 1

12


2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

 Bộ nhớ ngoài
● Mỗi thiết bị Android cung cấp bộ nhớ ngoài cho
phép người dùng có thể lưu trữ và truy xuất trực
tiếp trên thiết bị hoặc thông qua máy tính khi kết nối
USB Storage.
● Bộ lưu trữ ngoài bao gồm hai dạng:
 Bộ nhớ thiết bị (non-removable)
 Bộ nhớ ngoài (sd-card, usb)

● Cần xin cấp quyền để truy xuất bộ nhớ ngoài
android.permission.WRITE_EXTERNAL_STORAGE

Lập trình Android – Module 1

13


2. Lưu trữ dữ liệu với file trên bộ nhớ trong và bộ nhớ ngoài

Lập trình Android – Module 1

14



2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài

Lập trình Android – Module 1

15


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài

Lập trình Android – Module 1

16


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài

Lập trình Android – Module 1

17


2. Lưu trữ dữ liệu với file trên bộ nhớ trong
và bộ nhớ ngoài
Ví dụ:
File sdCard = Environment.getExternalStorageDirectory();

File directory = new File (sdCard.getAbsolutePath() + "/MyFiles"); File file =
new File(directory, "textfile.txt");
FileInputStream fIn = new FileInputStream(file); InputStreamReader isr =
new InputStreamReader(fIn);

Lập trình Android – Module 1

18


3. CSDL SQLite trong ứng dụng Android
 CSDL do một ứng dụng tạo ra sẽ chỉ được truy xuất bởi ứng

dụng đó, và file CSDL sẽ nằm trong bộ nhớ trong dành riêng cho
ứng dụng (/data/data/{package-name}/databases/)
 Để sử dụng ta thực hiện:
Bước 1: Tạo một lớp kế thừa lớp SQLiteOpenHelper dùng để thao tác với cơ
sở dữ liệu. Trong đó ClassName là tên lớp.

Lập trình Android – Module 1

19


3. CSDL SQLite trong ứng dụng Android
 Xây dựng phương thức thêm dữ liệu

 Phương thức cập nhật dữ liệu

Lập trình Android – Module 1


20


3. CSDL SQLite trong ứng dụng Android
 Phương thức xóa dữ liệu

 Xây dựng phương thức truy vấn dữ liệu không có điều

kiện

Lập trình Android – Module 1

21


3. CSDL SQLite trong ứng dụng Android
 Xây dựng phương thức truy vấn dữ liệu có điều kiện
public void methodName([parameter])
{
SQLiteDatabase db = this.getReadableDatabase();
String[] columns = {"column1", "colum2",…};
String selection = "column1 = ? …";
String []selectionArgs = {value1,…};
String groupBy = null; String having = null;
String orderBy = null;
Cursor c = db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy);
if(c!=null)
{
c.moveToFirst();

//Về đầu danh sách
do {
Truy vấn dữ liệu sử dụng c.getString(columnIndex);

}

while(c.moveToNext()); } }

Lập trình Android – Module 1

22


3. CSDL SQLite trong ứng dụng Android
 Bước 2: Sử dụng lớp đã tạo ở bước 1 trong activity

Lập trình Android – Module 1

23


Lập trình Android – Module 1

24



×