Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
原文地址:http://android.xsoftlab.net/training/sharing/shareaction.html
從Android4.0開始,使用ActionProvider可以更方便的在ActionBar上實現一個有效的、用戶友好的分享按鈕。一個ActionProvider一旦依附到了ActionBar的菜單條目上,它會處理這個菜單條目的外觀和行為。在ShareActionProvider這種情況中,你只需提供一個分享意圖,它會處理剩下的事情。
Note:ShareActionProvider從API 14開始可用。
上圖:ShareActionProvider在相冊APP中的應用。
更新菜單聲明
如果要開始使用ShareActionProvider,需要在菜單資源文件中相應的< 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對菜單外觀與行為的代理職責。不過,你還是需要告訴提供者Provider你要分享的東西。
設置分享意圖
為了可以使ShareActionProvider運行,你必須給它提供一個分享意圖。這個分享意圖應該與課程Sending Simple Data to Other Apps中描述的一致,需要有行為ACTION_SEND以及附加數據集比如EXTRA_TEXT或EXTRA_STREAM。為了分配一個共享意圖,首先要找到在Activity或者Fragment中填充的對應的菜單條目MenuItem。接下來,調用MenuItem.getActionProvider()方法接收一個ShareActionProvider的實例。使用setShareIntent()來更新與共享意圖相關的那個行為條目:
private ShareActionProvider mShareActionProvider; ... @Override public boolean onCreateOptionsMenu(Menu menu) {// Inflate menu resource file.getMenuInflater().inflate(R.menu.share_menu, menu);// Locate MenuItem with ShareActionProviderMenuItem item = menu.findItem(R.id.menu_item_share);// Fetch and store ShareActionProvidermShareActionProvider = (ShareActionProvider) item.getActionProvider();// Return true to display menureturn true; } // Call to update the share intent private void setShareIntent(Intent shareIntent) {if (mShareActionProvider != null) {mShareActionProvider.setShareIntent(shareIntent);} }在創建菜單期間,你可能只需要設置一次分享意圖,或者你可能想在UI改變的時候通過設置它來更新它。舉個例子,當你在全屏狀態下瀏覽照片的時候,分享意圖會隨著照片的滑動而改變。
有關ShareActionProvider的進一步討論,請參見Action Bar指南。
總結
以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遗传算法及其应用实现
- 下一篇: 技术思考:也谈知识图谱平台中的数据流程与