一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android Intent和Intent Filter詳解(五)

 wanwanstudy 2012-02-11
該filter聲明了改activity可以對一個筆記目錄做的事情. 它允許用戶查看或編輯該目錄(使用VIEW和EDIT action), 或者選取特定的筆記(使用PICK action).

       <data>元素的mimeType指定了這些action可以操作的數(shù)據(jù)類型. 它表明該activity可以從一個持有記事本數(shù)據(jù)的content provider(vnd.google.note)取得一個或多個數(shù)據(jù)項的Cursor(vnd.android.cursor.dir).

        注意該filter提供了一個DEFAULT category. 這是因為 Context.startActivity() 和 Activity.startActivityForResult()方法將所有的intent都作為作為包含了DEFAULT category來處理, 只有兩個例外:

        顯式指明目標(biāo)activity名稱的intent.
        包含MAIN action 和LAUNCHER category的intent.
        因此, 除了MAIN和LAUNCHER的filter之外, DEFAULT category是必須的.

java代碼:
  1. <intent-filter>
  2. <action android:name="android.intent.action.GET_CONTENT" />
  3. <category android:name="android.intent.category.DEFAULT" />
  4. <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
  5. </intent-filter>
復(fù)制代碼

       這個filter描述了該activity能夠在不需要知道目錄的情況下返回用戶選擇的一個筆記的能力. GET_CONTENT action和PICK action相類似. 在這兩者中, activity都返回用戶選擇的筆記的URI. (返回給調(diào)用startActivityForResult()來啟動NoteList activity的activity.) 在這里, 調(diào)用者指定了用戶選擇的數(shù)據(jù)類型而不是數(shù)據(jù)的目錄.

        這個數(shù)據(jù)類型, vnd.android.cursor.item/vnd.google.note, 表示了該activity可以返回的數(shù)據(jù)類型 -- 一個筆記的URI. 從返回的URI, 調(diào)用者可以從持有筆記數(shù)據(jù)的content provider(vnd.google.note)得到一個項目(vnd.android.cursor.item)的Cursor.

         也就是說, 對于PICK來說, 數(shù)據(jù)類型表示activity可以給用戶顯式的數(shù)據(jù)類型.對于GET_CONTENT filter, 它表示activity可以返回給調(diào)用者的數(shù)據(jù)類型.

         下列intent可以被NoteList activity接受:

         action: android.intent.action.MAIN
         不指定任何數(shù)據(jù)直接啟動activity.
         action: android.intent.action.MAIN
         category: android.intent.category.LAUNCHER

         不指定任何數(shù)據(jù)直接啟動activity. 這是程序啟動器使用的intent. 所有使用該組合的filter的activity被加到啟動器中.
         action: android.intent.action.VIEW
         data: content://com.google.provider.NotePad/notes

         要求activity顯示一個筆記列表,這個列表位于content://com.google.provider.NotePad/notes. 用戶可以瀏覽這個列表并獲取列表項的信息.

        action: android.intent.action.PICK
        data: content://com.google.provider.NotePad/notes

        請求activity顯示content://com.google.provider.NotePad/notes下的筆記列表. 用戶可以選取一個筆記, activity將返回筆記的URI給啟動NoteList的activity.

        action: android.intent.action.GET_CONTENT
        data type: vnd.android.cursor.item/vnd.google.note

        請求activity提供記事本數(shù)據(jù)的一項.

        第二個activity, NoteEditor, 為用戶顯示一個筆記并允許他們編輯它. 它可以做以下兩件事:

java代碼:
  1. <intent-filter android:label="@string/resolve_edit">
  2. <action android:name="android.intent.action.VIEW" />
  3. <action android:name="android.intent.action.EDIT" />
  4. <action android:name="com.android.notepad.action.EDIT_NOTE" />
  5. <category android:name="android.intent.category.DEFAULT" />
  6. <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
  7. </intent-filter>
復(fù)制代碼

        這個activity的主要目的是使用戶編輯一個筆記--VIEW或者EDIT一個筆記. (在category中,EDIT_NOTE是EDIT的同義詞.) intent包含匹配MIME類型vnd.android.cursor.item/vnd.google.note的URI--也就是某一個特定的筆記 的URI. 它一般來說是NoteList activity中的PICK或者GET_CONTENT action返回的.像以前一樣,該filter列出了DEFAULT category.

java代碼:
  1. <intent-filter>
  2. <action android:name="android.intent.action.INSERT" />
  3. <category android:name="android.intent.category.DEFAULT" />
  4. <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
  5. </intent-filter>
復(fù)制代碼

        該activity的第二個目的是使用戶能夠創(chuàng)建一個新的筆記, 并插入到已存在的筆記目錄中. 該intent包含了匹配vnd.android.cursor.dir/vnd.google.note的URI, 也就是筆

        有了這些能力, NoteEditor就可以接受以下intent:
        action: android.intent.action.VIEW
        data: content://com.google.provider.NotePad/notes/ID

         要求activity顯示給定ID的筆記.
         action: android.intent.action.EDIT
         data: content://com.google.provider.NotePad/notes/ID

         要求activity顯示指定ID的筆記,然后讓用戶來編輯它. 如果用戶保存了更改,則activity更新該content provider的數(shù)據(jù).
         action: android.intent.action.INSERT
         data: content://com.google.provider.NotePad/notes

         要求activity創(chuàng)建一個新的空筆記在content://com.google.provider.NotePad/notes, 并允許用戶編輯它, 如果用戶保存了更改,則該URI被返回給調(diào)用者.

         最后一個activity, TitleEditor, 允許用戶編輯筆記的標(biāo)題. 這可以通過直接調(diào)用activity(在intent中設(shè)置組件名稱)的方式來實現(xiàn). 但是這里我們用這個機(jī)會來展示如何在已有數(shù)據(jù)上進(jìn)行另外的操作

java代碼:
  1. <intent-filter android:label="@string/resolve_title">
  2. <action android:name="com.android.notepad.action.EDIT_TITLE" />
  3. <category android:name="android.intent.category.DEFAULT" />
  4. <category android:name="android.intent.category.ALTERNATIVE" />
  5. <category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
  6. <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
  7. </intent-filter>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲永久一区二区三区在线| 国产精品午夜福利免费阅读| 亚洲五月婷婷中文字幕| 国产精品制服丝袜美腿丝袜| 激情图日韩精品中文字幕| 亚洲综合天堂一二三区| 91熟女大屁股偷偷对白| 欧美大胆女人的大胆人体| 国产精品午夜福利在线观看| 国产成人免费高潮激情电| 在线免费视频你懂的观看| 亚洲国产成人精品一区刚刚| 激情综合五月开心久久| 日本最新不卡免费一区二区| 国产成人精品一区二区三区| 邻居人妻人公侵犯人妻视频| 国产精品久久女同磨豆腐| 日韩精品一区二区一牛| 亚洲精品偷拍一区二区三区| 国产一级性生活录像片| 亚洲精品国产主播一区| 精品一区二区三区中文字幕| 好吊日在线视频免费观看| 欧美久久一区二区精品| 欧美韩国日本精品在线| 高潮少妇高潮久久精品99| 丰满少妇被猛烈插入在线观看| 精品香蕉国产一区二区三区| 国产中文字幕一区二区| 国产三级欧美三级日韩三级| 精品国模一区二区三区欧美| 日韩亚洲激情在线观看| 欧美激情一区=区三区| 美女露小粉嫩91精品久久久 | 国产又色又爽又黄又大| 国产偷拍精品在线视频| 好吊妞视频只有这里有精品| 黄色三级日本在线观看| 国产不卡免费高清视频| 中文字幕av诱惑一区二区| 国产日产欧美精品大秀|