Android添加一個(gè)簡(jiǎn)便的分享功能

2018-08-02 18:35 更新

編寫:kesenhoo - 原文:http://developer.android.com/training/sharing/shareaction.html

Android4.0之后系統(tǒng)中ActionProvider的引入使在ActionBar中添加分享功能變得更為簡(jiǎn)單。它會(huì)handle出現(xiàn)share功能的appearance與behavior。在ShareActionProvider的例子里面,我們只需要提供一個(gè)share intent,剩下的就交給ShareActionProvider來做。

actionbar-shareaction.png

更新菜單聲明(Update Menu Declarations)

使用ShareActionProvider的第一步,在menu resources對(duì)應(yīng)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想分享的內(nèi)容。

Set the Share Intent(設(shè)置分享的intent)

為了實(shí)現(xiàn)ShareActionProvider的功能,我們必須為它提供一個(gè)intent。該share intent應(yīng)該像第一課講的那樣,帶有ACTION_SEND和附加數(shù)據(jù)(例如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);
    }
}

也許在創(chuàng)建菜單的時(shí)候僅僅需要設(shè)置一次share intent就滿足需求了,或者說我們可能想先設(shè)置share intent,然后根據(jù)UI的變化來對(duì)intent進(jìn)行更新。例如,當(dāng)在Gallery里面全圖查看照片的時(shí)候,share intent會(huì)在切換圖片時(shí)候進(jìn)行改變。 更多關(guān)于ShareActionProvider的內(nèi)容,請(qǐng)查看Action Bar 。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)