天天看點

【Android Training - 06】分享資料内容 [Lesson 3 - 在ActionBar上添加Share Action] Adding an Easy Share Action[增加一個簡單的分享Action]

Adding an Easy Share Action[增加一個簡單的分享Action]

  • 這一課會介紹在

    ActionBar

     中添加一個高效率且比較友好的Share功能,會使用到ActionProvider(在Android 4.0上才被引進)。它會handle出現share功能的appearance與hehavior。在ShareActionProvider的例子裡面,你之需要提供一個share intent,剩下的就交給 

    ShareActionProvider

    來做。
  • 注意:ShareActionProvider是Android 4.0之後才有的。
  • 【Android Training - 06】分享資料内容 [Lesson 3 - 在ActionBar上添加Share Action] Adding an Easy Share Action[增加一個簡單的分享Action]

Update Menu Declarations[更新菜單聲明]

使用ShareActionProvider的第一步,在你的menu對應item中定義android:actionProviderClass屬性。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_item_share"
        android:showAsAction="ifRoom"
        android:title="Share"
        android:actionProviderClass="android.widget.ShareActionProvider" />
    ...
</menu>
           

這表明了這個item的appearance與function需要與ShareActionProvider比對。然而,你還是需要告訴provider你想分享的内容。

Set the Share Intent[設定分享的intent]

為了能夠實作ShareActionProvider的功能,你必須提供給它一個intent。這個share intent應該像第一課講的那樣,帶有ACTION_SEND和附加資料(例如EXTRA_TEXT與 EXTRA_STREAM)的。如何使用ShareActionProvider,請看下面的例子:

private ShareActionProvider mShareActionProvider;
...

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate menu resource file.
    getMenuInflater().inflate(R.menu.share_menu, menu);

    // Locate MenuItem with ShareActionProvider
    MenuItem item = menu.findItem(R.id.menu_item_share);

    // Fetch and store ShareActionProvider
    mShareActionProvider = (ShareActionProvider) item.getActionProvider();

    // Return true to display menu
    return true;
}

// Call to update the share intent
private void setShareIntent(Intent shareIntent) {
    if (mShareActionProvider != null) {
        mShareActionProvider.setShareIntent(shareIntent);
    }
}
           
  • 你也許在建立菜單的時候僅僅需要設定一次share intent就滿足需求了,或者說你可能想先設定share intent,然後根據UI的變化來對intent進行更新。例如,當你在Gallery裡面全圖檢視照片的時候,share intent會在你切換圖檔的時候進行改變。
  • 想要檢視更多關于ShareActionProvider的内容,請檢視Action Bar 。

學習自:http://developer.android.com/training/sharing/shareaction.html,請多指教,謝謝!

轉載請注明出處: http://blog.csdn.net/kesenhoo,謝謝!