ContentProvider的BaseColumns接口,放入什么?

时间:2013-05-08 07:33:59

标签: android sqlite android-contentprovider

查看ContentProviders的示例时,其中大多数都包含BaseColumns接口。在比较不同的实现时,每个实现内部都有不同的方法。在BaseColumns界面中放入什么是最好的东西,你应该放什么?

BaseColumns界面示例:

 public static interface LentItems extends BaseColumns {

   public static final Uri CONTENT_URI = LentItemsProvider.CONTENT_URI;

   public static final String NAME = "name";

   public static final String CATEGORY = "category";

   public static final String BORROWER = "borrower";

   public static final String CONTENT_PATH = "items";

   public static final String CONTENT_TYPE = ContentResolver.CURSOR_DIR_BASE_TYPE + "/vnd.cpsample.lentitems";

   public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + "/vnd.cpsample.lentitems";

   public static final String[] PROJECTION_ALL = {_ID, NAME, CATEGORY, BORROWER};

   public static final String SORT_ORDER_DEFAULT = NAME + " ASC";
 }

另一个例子

 public class Note {

  public Note() {
  }

  public static final class Notes implements BaseColumns {
    private Notes() {
    }

    public static final Uri CONTENT_URI = Uri.parse("content://"
            + NotesContentProvider.AUTHORITY + "/notes");

    public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.jwei512.notes";

    public static final String NOTE_ID = "_id";

    public static final String TITLE = "title";

    public static final String TEXT = "text";
    }

}

1 个答案:

答案 0 :(得分:0)

BaseColumns是一个只提供两个字段_IDCOUNT的界面。它通常是实现的,因为不同小部件(如_ID)至少需要_idListView)字段才能出现在其适配器使用的Cursor中。

你可以实现/扩展该接口,让该字段添加你想要的任何东西(保持它与类相关)。

  

放入BaseColumns接口的最佳内容是什么?

您没有在BaseColumns中放置任何内容,您可以扩展/实现它以使用其字段。无论你看到什么,除了那些来自编写LentItems接口或Note类的开发人员。