Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 信息共享專題之ActionBar添加分享動作

Android 信息共享專題之ActionBar添加分享動作

編輯:Android開發實例

在Android 4.0 (API Level 14)中引入的ActionProvider方便了在ActionBar中添加share action,一個ActionProvider一旦和ActionBar中的某個菜單項綁定起來,它就會負責該菜單項的界面繪畫更新和事件處理。借助於ShareActionProvider,您只需要設置一個share intent就可以了,其余的事情都交給ShareActionProvider來處理。 注意:ShareActionProvider 要求最低 API Level 14

更新菜單聲明

要想使用ShareActionProviders,您需要在菜單資源文件( menu resource)的Share菜單項<item>中聲明android:actionProviderClass屬性,示例如下

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

通過如上的定義,就把該菜單項的界面顯示和消息事件處理委托給ShareActionProviders,不過具體要顯示的內容還是需要您來指定。

設置 Share Intent

為了使 ShareActionProvider 可以正常工作,您還必須要設置Share Intent。這個Share Intent和第一節課《Android 信息共享專題之內容發布》中講解的Intent一樣,需要設置其Action為 ACTION_SEND,要發送的內容通過鍵值 EXTRA_TEXT 或者EXTRA_STREAM設置到該Intent中。具體步驟如下,您首先需要在Activity 或者 Fragment中inflating(加載)菜單資源文件,找到上文中聲明的那個菜單項MenuItem(如menu_item_share),接著呼叫方法MenuItem.getActionProvider()來獲得一個ShareActionProvider實例,最後調用setShareIntent()把Share 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);
      }
  }

您可能會選擇只有在第一次創建菜單的時候設置share intent一次,其余菜單界面刷新的時候都不會再改變intent的設置了,或者也會選擇每次菜單刷新的時候就重新設置intent一次,隨著UI界面的改變會更新不同的intent。例如,您在Gallery app中全屏幕浏覽圖片的時候和滾動浏覽圖片的時候可能會設置不同的sharing intent。 想了解更多的關於ShareActionProvider 方面的知識,請參照Action Bar指南。 參考文摘: http://developer.android.com/training/sharing/shareaction.html

 

原文:http://blog.zhourunsheng.com/2012/01/android-%e4%bf%a1%e6%81%af%e5%85%b1%e4%ba%ab%e4%b8%93%e9%a2%98%e4%b9%8bactionbar%e6%b7%bb%e5%8a%a0%e5%88%86%e4%ba%ab%e5%8a%a8%e4%bd%9c/ | 潤物無聲

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved