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

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