Tìm kiếm tài liệu miễn phí

Hướng dẫn lập trình cơ bản với Android - Phần 22: Tạo và sử dụng một Content Provider

Tài liệu cung cấp cho người học các kiến thức: Tạo và sử dụng một Content Provider, chỉnh sửa code, giao diện chương trình, tạo tệp dữ liệu,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.



Đánh giá tài liệu

0 Bạn chưa đánh giá, hãy đánh giá cho tài liệu này


  • 5 - Rất hữu ích 0

  • 4 - Tốt 0

  • 3 - Trung bình 0

  • 2 - Tạm chấp nhận 0

  • 1 - Không hữu ích 0

Mô tả

2. Tạo và sử dụng 1 Content Provider do người dùng tự định nghĩa Để dễ hiểu hơn các bạn mở Project ContentProviderDemo trong Sourcecode đã down về. Trong Project đó mình tạo 1 Content Provider Books, mỗi bản ghi Book bao gồm 2 trường : ID và Title. Sau đây là các bước để tạo 1 Content Provider cơ bản ( cụ thể là tạo ContentProvider Book) 1. Tạo 1 class thừa kế lớp ContentProvider Mã: public class BookProvider extends ContentProvider 2. Định nghĩa 1 biến Uri (public static final ) được gọi CONTENT_URI. Các xâu này luôn được bắt đầu bằng “content://” tiếp theo đó là nội dung của mà ContentProvider xử lý. Xâu này phải có đặc tính là duy nhất. Mã: public static final String PROVIDER_NAME = "com.vietandroid.provider.Books"; public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/books"); 3. Khai báo các xâu để định nghĩa cho từng thuộc tính tương ứng với các cột giá trị từ Cursor. Mã: public static final String _ID = "_id"; public static final String TITLE = "title"; 4. Chúng ta cần tạo hệ thống chứa dữ liệu cho ContentProvider, có thể chưa dưới nhiều hình thức : sử dụng XML, thông qua CSDL SQLite, hay thậm chí là WebService. Trong Demo này chúng ta sử dụng cách phổ biến nhất đó là SQLite: Mã: private private "Books"; private "titles"; private SQLiteDatabase bookDB; static final String DATABASE_NAME = static final String DATABASE_TABLE = static final int DATABASE_VERSION = 1; 5. Định nghĩa tên của các cột mà chúng ta sẽ trả lại giá trị cho các clients.Nếu chúng ta đang sử dụng Database ContentProvider hay các lớp SQLiteOpenHelper, tên các cột này chính là id của các cột trong cơ sở dữ liệu SQL. Trong trường hợp này, chúng ta phải gộp cả cột có giá trị là số nguyên được gọi “_id” để định nghĩa id của mỗi bản ghi. Nếu đang sử dụng cơ sở dữ liệu SQLite, nó sẽ là INTEGER PRIMARY KEY AUTOINCREMENT. Tùy chọn AUTOINCREMENT không bắt buộc, có tác dụng tự động tăng ID của mỗi bản ghi lên nếu người dùng không nhập. Android cung cấp SQLiteOpenHelper giúp tạo và quản lý các phiên bản của cơ sở dữ liệu. Mã: private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE + " (_id integer primary key autoincrement, " + "title text not null);"; private static class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context) { super(context, DATABASE_NAME , null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS titles"); onCreate(db); } } 6. Nếu chúng ta muốn public các dữ liệu kiểu byte như bitmap thì các trường mà chứa dữ liệu này nên là một xâu với 1 content://URI cho file đó. Đây chính là liên kết để các ứng dụng khác có thể truy cập và sử dụng dữ liệu bitmap này. 7. Sử dụng Cursor để thao tác trên tập dữ liệu : query (), update(), insert(), delete()….. Có thể gọi phương thức ContentResolver.notifyChange() để biếtkhi nào dữ liệu được cập nhật. Add Book Mã: @Override public Uri insert(Uri uri, ContentValues values) { long rowID = bookDB.insert(DATABASE_TABLE, "", values); if(rowID > 0) { Uri mUri = ContentUris.withAppendedId(CONTENT_URI, rowID); getContext().getContentResolver().notifyChange(mUr i, null); return mUri; } throw new SQLException("Failed to insert new row into " + uri); } Get All Books Mã: @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteQueryBuilder sqlBuilder = new SQLiteQueryBuilder(); sqlBuilder.setTables(DATABASE_TABLE); if(uriMatcher.match(uri) == BOOK_ID) sqlBuilder.appendWhere(_ID + "=" + uri.getPathSegments().get(1)); if(sortOrder == null || sortOrder == "") sortOrder = TITLE; Cursor c = sqlBuilder.query(bookDB, projection, selection, selectionArgs, null, null, sortOrder); c.setNotificationUri(getContext().getContentResolv er(), uri); return c; } } Mình chỉ demo 2 chức năng là thêm sách và lấy toàn bộ bản ghi trong CSDL , ngoài ra các phương thức edit, sửa , update, xóa... các bạn có thể tự làm . 8. Khai báo Content Provider trong file AndroidManifest.xml Mã: Như vậy chúng ta đã tạo xong ContentProvider Book tự định nghĩa.

Tài liệu cùng danh mục Kỹ thuật lập trình

Sao lưu trực tuyến

Bạn không cần phải lo sợ mất dữ liệu mỗi khi cài lại hệ điều hành hay thấy bất tiện phải sao lưu (back up) dữ liệu vào ổ cứng, đĩa CD và đem theo khi đi công tác. Nhờ sự ra đời của các dịch vụ sao lưu trực tuyến, giờ đây, bạn có thể lấy dữ liệu ở bất cứ nơi đâu có nối mạng mà không cần mang theo gì cả.


Lecture Learning programming using Visual Basic.Net – Chapter 4: Performing calculations and manipulating data: Expressions

Chapter 4 - Performing calculations and manipulating data: Expressions. The following will be discussed in this chapter: Describe the operators and functions used to create arithmetic, string, and logical expressions; explain why errors occur and how to avoid them; write logical expressions using comparison operators and logical operators.


Bài giảng Lập trình hướng đối tượng: Chương 4 - ThS. Bùi Trọng Hiếu

trong chương trước chúng ta đã nắm được được tương đối về hoạt động của thừa kế, tuy nhiên đó mới chỉ là bề mặt của những gì liên quan đến vấn đề thừa kế trong đối tượng. Trong chương này, chúng ta bắt đầu làm quen với cột trụ thứ ba của mô hình hướng đối tượng, đó là đa hình. Mời các bạn cùng tham khảo.


Squidoo Basics How To Market And Promote Your Sites Using Squidoo

Tham khảo sách 'squidoo basics how to market and promote your sites using squidoo', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Microsoft Office 2003 Super Bible - part 6

Tiếp theo, chia sẻ thư mục: ✦ Trong Windows 2000, bạn nhấn phải chuột lên thư mục và chọn Sharing. Chọn Chia sẻ nút tùy chọn thư mục, và nhập vào tên chia sẻ. Xem Hình 13-2. Mặc định là cho người khác để có thể truy cập, nếu bạn muốn thay đổi, nhấp vào nút Permissions và rõ ràng hoàn toàn kiểm soát và hộp kiểm tra Thay đổi.


Lập trình C trong kỹ thuật điện tử part 1

Tài liệu “Lập trình C trong kỹ thuật điện tử “ được biên soạn nhằm giúp cho sinh viên, kỹ sư các ngành kỹ thuật điện tử, kỹ thuật điện, kỹ thuật máy tính nhanh chóng làm quen với kỹ thuật lập trình bằng ngôn ngữ C theo cách trình bày ngắn gọn về ngôn ngữ rồi dẫn dắt bạn đọc đến với những bài toán cụ thể về kỹ thuật điện, điện tử


AutoI Technology Curriculum Book part 147

Tham khảo tài liệu 'autoi technology curriculum book part 147', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Hacker Professional Ebook part 156

Tham khảo tài liệu 'hacker professional ebook part 156', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Bài giảng Tác tử - Công nghệ phần mềm dựa tác tử: Ontology – Bản thể học

Bài giảng Tác tử - Công nghệ phần mềm dựa tác tử: Bản thể học trình bày các nội dung chính như: Mục đích và khái niệm của Ontology – Bản thể học, phát triển một ontology, Ontology enginerring,... Mời các bạn cùng tham khảo.


Thủ thuật truy cập từ xa vào máy tính của bạn

Những dịch vụ truy cập từ xa đưa các tập tin và ứng dụng trên máy tính ở xa đến tận tay bạn thông qua browser (trình duyệt) bất kỳ. Đi khỏi văn phòng bạn mới phát hiện thiếu tập tin trình diễn quan trọng.


Tài liệu mới download

Từ khóa được quan tâm

Có thể bạn quan tâm

ASP.NET Bible 2002 PHẦN 5
  • 18/10/2011
  • 78.434
  • 338
Visual Basic 6 - chương 2
  • 13/06/2011
  • 15.498
  • 557
Secure PHP Development- P168
  • 08/12/2010
  • 76.849
  • 182
Creating Functions
  • 08/08/2010
  • 71.809
  • 627
Chương 7 Mô hình động UML
  • 18/07/2011
  • 66.737
  • 246
Cracker Handbook 1.0 part 205
  • 18/10/2010
  • 14.492
  • 734

Bộ sưu tập

Danh mục tài liệu