Việc sử dụng lớp học từ BaseColumns
trong Android là gì?Việc sử dụng BaseColumns trong Android
Trả lời
Đây là một giao diện đơn giản mà bổ sung thêm hai lĩnh vực:
public interface BaseColumns
{
/**
* The unique ID for a row.
* <P>Type: INTEGER (long)</P>
*/
public static final String _ID = "_id";
/**
* The count of rows in a directory.
* <P>Type: INTEGER</P>
*/
public static final String _COUNT = "_count";
}
cơ sở dữ liệu nội sqlite sử dụng trong Android, đi kèm với một cột _id
rằng autoincrements và có chức năng như một khóa chính. Điều này cũng lập bản đồ tốt với giao diện ContentProviders
Giao diện BaseColumns
cung cấp tên cho các cột _ID
và _COUNT
rất phổ biến.
Sử dụng tên phổ biến cho phép nền tảng Android (và nhà phát triển) giải quyết bất kỳ mục dữ liệu nào, bất kể cấu trúc tổng thể của nó (tức là các cột không phải ID khác) một cách thống nhất. Định nghĩa các hằng số cho các chuỗi thường được sử dụng trong một giao diện/lớp tránh lặp lại và lỗi chính tả trên mã.
Sử dụng một cột tên là _id
(giá trị liên tục của BaseColumns._ID
) là bắt buộc bởi CursorAdapter
, triển khai của một ContentProvider
và khác những nơi mà bạn trao đi một Cursor
cho nền tảng Android để làm việc cho bạn. Ví dụ: bộ điều hợp của một ListView
sử dụng cột _ID
để cung cấp cho bạn ID duy nhất của mục danh sách được nhấp trong OnItemClickListener.onItemClick()
, mà không cần phải chỉ định rõ ràng cột ID của bạn là gì mỗi lần.
hay không để thực hiện giao diện bao gồm duy nhất của hằng số hoặc tham khảo chúng với tên đầy đủ của họ, ví dụ: BaseColumns._ID
là một vấn đề của hương vị. Tôi cá nhân thích thứ hai, bởi vì nó rõ ràng hơn nơi _ID
là đến từ và trước đây cảm thấy giống như một sự lạm dụng thừa kế.
Giao diện BaseColumn chỉ cung cấp cột tên _ID và _COUNT. Bạn vẫn phải chỉ định các cột sử dụng chúng khi xây dựng bảng. Ví dụ, để tạo ra một cột bằng cách sử dụng tên cột _ID bạn có thể làm như sau:
public static final String CREATE_TABLE =
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
+ _ID + " INTEGER PRIMARY KEY, "
+ USERNAME + " TEXT NOT NULL, "
+ PASSWORD + " TEXT NOT NULL, "
+ EMAIL + " TEXT NOT NULL UNIQUE)";
- 1. việc sử dụng MemoryFile trong android
- 2. Android: Việc sử dụng thư viện ActionBarSherlock
- 3. Việc sử dụng quyền Android Wake Lock là gì?
- 4. android: layout_alignParentBottom = "true" với việc sử dụng bàn phím
- 5. mục đích của việc sử dụng Intent.createChooser() trong startActivity() trong khi gửi email trong Android
- 6. Việc sử dụng allowCoreThreadTimeout() trong ThreadPoolExecutor là gì?
- 7. Việc sử dụng @SuppressWarnings
- 8. Sử dụng putSerializable trong Android
- 9. Sử dụng JDO trong Android
- 10. Sử dụng onDestroy() trong android
- 11. ANR trong việc sử dụng ngẫu nhiên ứng dụng
- 12. Việc sử dụng/lợi thế của việc sử dụng CommandBehavior.CloseConnection trong ExecuteReader()
- 13. Việc sử dụng CoTaskMemAlloc?
- 14. Việc sử dụng extern trong C++
- 15. Việc sử dụng moveToFirst() trong SQLite Cursors
- 16. Việc sử dụng session.flush() trong Hibernate
- 17. Việc sử dụng "này" trong Java
- 18. Việc sử dụng Jackson & Jettison trong Jersey
- 19. Nhược điểm của việc sử dụng Basic4Android?
- 20. Hướng dẫn sử dụng Hibernate trong Android?
- 21. Animate Text Sử dụng TextSwitcher Trong Android
- 22. Việc sử dụng <permission-group> trong android là gì?
- 23. Lợi ích của việc sử dụng flush() close() trong luồng Android?
- 24. cách đo và cải thiện việc sử dụng pin trong trò chơi iPhone/iPad (Android cũng)
- 25. Mục đích của việc sử dụng System.img trong Android là gì?
- 26. việc sử dụng cho "repo sync -d" trong kho lưu trữ nguồn Android là gì
- 27. Android: Sử dụng Danh mục trong Monkey
- 28. Cách sử dụng TextSwitcher Trong Android
- 29. Sử dụng C2DM trong Android-x86
- 30. Sử dụng onBackPressed() trong Android Fragments
** thnx ** nên nó có nghĩa là chúng ta không cần phải lấy id (có nghĩa là khóa chính) của bảng, autmaticaly của nó có sẵn từ BaseColumns._ID –
Bạn vẫn phải lấy cột ID trong các truy vấn 'SELECT',' BaseColumns._ID' chỉ xác định * tên * của cột ID đó. –
bất kể tên cột id chính nào được thay thế bằng BaseColumns._ID khi biên dịch truy vấn. đúng không? –