編輯:關於Android編程
契約類
契約類定義了幫助應用使用content URIs的常量,列名,intent action們,和其它contentprovider特性。契約類不會被provider自動包含;provider開發者必須定義它們然後使它們對其它開發者生效。Android平台中包含的很多provider都在包android.provider中有對應的契約類。
例如,用戶詞典Provider具有一個契約類UserDictionary,它包含了contentURI和columnname常量。"words"表的contentURI定義在常量UserDictionary.Words.CONTENT_URI上。UserDictionary.Words類也包含了列名常量,在下面的代碼片段中就用到了。舉例,一個查詢projection可以如下定義:
String[]mProjection =
{
UserDictionary.Words._ID,
UserDictionary.Words.WORD,
UserDictionary.Words.LOCALE
};
另一個契約類是用於聯系人Provider的ContactsContract類。此類的參考文檔中包含示例代碼片段。它的一個子類,ContactsContract.Intents.Insert,也是一個契約類,它包含了用於intent和intent數據的契約。
引用MIME類型
Contentprovider可以返回標准的MIME類型或自定義的MIME類型字符串,或同時返回兩者。
MIME類型具有以下形式
type/subtype
例如,世人皆知的MIME類型text/html具有text類型和html子類型。如果provider從一個URI返回此類型,這表示面向此URI的查詢將返回帶有HTML標記的文本。
自定義的MIME字符串,也被叫做"vendor-specific"MIME類型,具有更復雜的類型和子類型值,此類型的值總是這樣
vnd.android.cursor.dir
用於多行,或這樣
vnd.android.cursor.item
用於單行。
而子類型是每個provider都不相同的。Android內置的provider通常具有一個間單的字類型。例如,當聯系人應用為一個電話號碼創建一個新行時,它為新行設置下面的MIME類型:
vnd.android.cursor.item/phone_v2
可以看到子類型的值只是簡單的phone_v2.
其它provider開發者可能基於provider的authority和表名字創建他們自己的子類型式樣。例如,假設一個provider含有列車時刻表,provider的authority是com.example.trains,並且它包含三個表:線路1,線路2,線路3。在URI的響應中,
content://com.example.trains/Line1
指向線路1表,provider返回對應的MIME類型為:
vnd.android.cursor.dir/vnd.example.line1
而content URI
content://com.example.trains/Line2/5
指向線路2表的第5行,provider返回的對應的MIME類型為:
vnd.android.cursor.item/vnd.example.line2
大多數contentproviders定義了契約類來包含它們所用到的MIME類型。例如,聯系人Provider的契約類ContactsContract.RawContacts,定義了常量CONTENT_ITEM_TYPE,它對應於一行原始的聯系人數據
不知道大家有沒有用過,淘寶電影客戶端(淘票票)買過電影票,縱觀各類在線選座app的在線選座功能 淘寶在線選座功能用戶體驗最好,用起來最順手,誇張點說已經到了爐火純青的地步
寫Spinner的步驟 兩種Spinner下拉列表的用法 第一種 第二種 寫Spinner的步驟: 1、設置數據源。用List集合來寫 2、新建ArrayAdapte
MyRecorder(仿微信,錄制音頻並發送功能)①布局實現(activity_main.xml) 布局采用線性布局,上面使用的一個ListView,下面使用的是一個自定
篇幅較長遂分成上下兩篇,上一篇我們已經快要一氣呵成了,但是美中不足的是,這個界面並不能討得美工MM的歡心,美工MM曾寄希望於您,卻交出這麼作出這麼一副死型樣,我都替你汗顏