2013-05-08 44 views
0

查看ContentProviders的示例時,其中大多數包含BaseColumns接口。比較不同的實現時,每個實現中都有不同的方法。在BaseColumns界面中放入什麼是最好的東西,以及不應該放入什麼?一個BaseColumns接口的ContentProvider的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"; 
    } 

} 

回答

0

BaseColumns的是,僅僅提供兩個字段_IDCOUNT的接口。它通常被實現,因爲_ID_id)字段至少是由其適配器使用的Cursor中存在的不同小部件(如ListView)所要求的。

你可以實現/擴展該接口,讓該字段除了那個之外添加你想要的任何東西(保持與該類相關)。

什麼是最好的東西放在BaseColumns接口?

您不會在BaseColumns中放入任何東西,您可以擴展/實現它以使用它的字段。無論你看到的是什麼,還有來自編寫LentItems接口或Note類的開發人員。