Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
711,93 KB
Nội dung
LẬPTRÌNHANDROIDCƠ BẢN Bài 7:ContentProviderSQLite Nội dung học ContentProvider SQLiteContentProvider ContentProvider thành phần Android ContentProvider sử dụng để quản lý chia sẻ liệu ứng dụng Một số ContentProvidercó sẵn hay sử dụng Sử dụng ContentProvider Truy vấn Content Provider, cung cấp xâu truy vấn dạng URI, sau: ://// Ví dụ để lấy thơng tin bookmark lưu trữ trình duyệt Android, sử dụng URI sau: content://browser/bookmarks Để lấy thông tin tất liên hệ ứng dụng Contacts, sử dụng URI sau: content://contacts/people Nhận thông tin liên hệ với ID content://contacts/people/3 Sử dụng ContentProvider Một ứng dụng truy cập liệu từ ContentProvider sử dụng đối tượng khách ContentResolver Các phương thức ContentResolver cung cấp hàm CRUD Để truy cập provider, thông thường ứng dụng bạn phải bổ sung thêm quyền vào android manifest Sử dụng ContentProvider Nhận trỏ CursorLoader loader=new CursorLoader(context, uri, null, null, null, null); Cursor c=loader.loadInBackground(); Hoặc sử dụng Cursor c = getContentResolver() query(uri, null, null, null, null); getContentResolver trả đối tượng ContentResolver giúp giải Content URI với ContentProvider thích hợp Tham số: URI, projection, SQLWHERE, ORDERBY Sử dụng ContentProvider Ví dụ để lấy danh sách từ User Dictionary Provider mCursor = getContentResolver().query( UserDictionary.Words.CONTENT_URI, // Content URI mProjection, // Số cột dòng mSelectionClause // Tiêu chí lựa chọn mSelectionArgs, // Tiêu chí lựa chọn mSortOrder); // Trật tự xếp liệu trả Sử dụng ContentProvider Sử dụng ContentProvider Thông tin liên hệ: Sử dụng getContentResolver thay CursorLoader: Sử dụng ContentProvider Lịch sử gọi: SQLiteOpenHelper Tạo database Cách đơn giản tạo thể SQLiteDatabase cho ứng dụng bạn sử dụng phương thức openOrCreateDatabase() Context import android.database.sqlite.SQLiteDatabase; Tạo database Thư mục lưu trữ sở liệu: /data/data/app/databases/ Bạn tìm thấy file sở liệu qua DBMS: Tạo database Bạn truy cập sở liệu ứng dụng Android khác (nên sử dụng ContentProvider lưu trữ sở liệu SQLite SDCard) Nếu lưu trữ SQLite SDCard phải bổ sung quyền vào Android Manifest sau: Tạo bảng Insert liệu Sử dụng phương thức insert() để thêm liệu Sử dụng đối tượng ContentValues để nhóm cặp tên trường, giá trị trường cho ghi muốn thêm Cập nhật liệu Bạn cập nhật liệu sử dụng phương thức update() gồm tham số sau: Bảng cần cập nhật Đối tượng ContentValues chứa giá trị cần cập nhật Mệnh đề WHERE, truyền tham số dạng dấu ? Mảng tham số mệnh đề WHERE Phương thức trả số dòng bị ảnh hưởng public int update (String table, ContentValues values, String whereClause, String[] whereArgs) Cập nhật liệu Bởi khơng cập nhật giá trị trường khác nên không cần thiết đưa vào đối tượng ContentValues Chúng ta thêm vào tenlop cần thay đổi thơng tin tên lớp Xóa liệu Bạn xố ghi từ bảng sử dụng phương thức delete() gồm tham số sau: Tên bảng có ghi muốn xóa Mệnh đề WHERE gồm nhiều tham số,mỗi dấu ? thể hiển tham số Một mảng giá trị ứng với tham số Truyền null vào mệnh đề WHERE xóa tồn ghi bảng public int delete (String table, String whereClause, String[] whereArgs) Phương pháp trả số ghi bị ảnh hưởng Xóa liệu Xóa tồn ghi bảng tblop: Xóa ghi với malop=“dhth7c”: Truy vấn SQLite Để lấy kết trả truy vấn sử dụng cursor lớp android.database.Cursor Đối tượng Cursor trỏ file cho phép truy cập ngẫu nhiên để truy vấn kết public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) Truy vấn SQLite Table Columns Selections SelectionArgs groupBy Having orderBy Truy vấn SQLite Tổng kết nội dung học ContentProvider SQLite ...Nội dung học Content Provider SQLite Content Provider Content Provider thành phần Android Content Provider sử dụng để quản lý chia sẻ liệu ứng dụng Một số Content Provider có sẵn hay... liệu trả Sử dụng Content Provider Sử dụng Content Provider Thông tin liên hệ: Sử dụng getContentResolver thay CursorLoader: Sử dụng Content Provider Lịch sử gọi: Sử dụng Content Provider Lịch sử... ứng dụng Android khác (nên sử dụng Content Provider lưu trữ sở liệu SQLite SDCard) Nếu lưu trữ SQLite SDCard phải bổ sung quyền vào Android Manifest sau: