注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術(shù)一般,由于喜愛安卓而產(chǎn)生了翻譯的念頭,純屬個人興趣愛好。
原文鏈接: http://developer.android.com/training/sharing/shareaction.html
想要在你的 ActionBar 中實現(xiàn)一個高效和用戶友好的分享行為,這在Android 4.0(API Level 14)及以上中通過引入 ActionProvider 而變得更加簡單。一個 ActionProvider ,一旦被添加至ActionBar中的一個項目,那么它就能處理它的外觀和行為。在 ShareActionProvider 的例子時,你只要提供一個分享的Intent,然后剩下的事情就交給它了。
Note:
ShareActionProvider 在API Level 14及更高的平臺上可以使用。
圖1. 在圖庫應(yīng)用中的 ShareActionProvider
?
一). 更新菜單聲明
從
ShareActionProvider
入手,在你的
menu resource
文件中,為對應(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 >
這樣就將處理該項的外觀和功能的任務(wù)交給了
ShareActionProvider
。當(dāng)然你需要告訴它你要分享什么內(nèi)容。
?
二). 設(shè)置分享Intent
為了讓
ShareActionProvider
起作用,你必須提供給它一個分享的Intent。這個分享Intent應(yīng)該和課程:
Sending Simple Data to Other Apps
(博客鏈接:
http://www.cnblogs.com/jdneo/p/3473170.html
)中所討論的一樣,設(shè)置行為為
ACTION_SEND
,然后通過extras(比如:
EXTRA_TEXT
和
EXTRA_STREAM
等)設(shè)置額外的數(shù)據(jù)集。為了交付一個分享的Intent,首先當(dāng)你在Activity或Fragment中填充你的菜單資源時,找到對應(yīng)的
MenuItem
。然后,調(diào)用
MenuItem.getActionProvider()
來獲得一個
ShareActionProvider
實例。使用
setShareIntent()
和該項相關(guān)聯(lián)的分享的
Intent
。下面是一個例子:
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è)置你的分享Intent一次,或者你可能希望設(shè)置它之后,隨著UI的改變而更新它。例如,當(dāng)你在圖庫應(yīng)用中全屏查看照片,分享Intent會隨著你切換照片而改變。
可以在文檔: Action Bar 中,獲得更多關(guān)于 ShareActionProvider 對象的討論。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
