当前位置: 首页 > news >正文

【Android Advanced Training - 07】分享数据内容 [Lesson 3 - 在ActionBar上添加Share Action]...

Adding an Easy Share Action[增加一个简单的分享Action]

  • 这一课会介绍在ActionBar中添加一个高效率且比较友好的Share功能,会使用到ActionProvider(在Android 4.0上才被引进)。它会handle出现share功能的appearance与hehavior。在ShareActionProvider的例子里面,你之需要提供一个share intent,剩下的就交给ShareActionProvider来做。
  • 注意:ShareActionProvider是Android 4.0之后才有的。

Update Menu Declarations[更新菜单声明]

使用ShareActionProvider的第一步,在你的menu对应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你想分享的内容。

Set the Share Intent[设置分享的intent]

为了能够实现ShareActionProvider的功能,你必须提供给它一个intent。这个share intent应该像第一课讲的那样,带有ACTION_SEND和附加数据(例如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); } }
  • 你也许在创建菜单的时候仅仅需要设置一次share intent就满足需求了,或者说你可能想先设置share intent,然后根据UI的变化来对intent进行更新。例如,当你在Gallery里面全图查看照片的时候,share intent会在你切换图片的时候进行改变。
  • 想要查看更多关于ShareActionProvider的内容,请查看Action Bar
学习自:http://developer.android.com/training/sharing/shareaction.html,请多指教,谢谢!
转载请注明出处: http://blog.csdn.net/kesenhoo,谢谢!


相关文章:

  • 憋了好几年的引擎终于露面了
  • 20154307《网络对抗》Exp8 Web基础
  • Bash知识点记录
  • Android 滑动效果入门篇(一)—— ViewFlipper
  • 在Moto Atrix4G手机里安装全功能Ubuntu记录(特附友情广告一则)
  • rpm 软件包管理
  • pom.xml文件详解
  • 互联网测试有什么不一样
  • Python基础第十六天:面向对象进阶
  • log4net 在.net CompactFramework 2.0中的使用
  • 20165307 实验四《Andriid应用开发》实验报告
  • 使用 php Header 报错的一个原因
  • 【IOS】仿捕鱼达人的金币滚动显示
  • 谷歌 AXURE RP EXTENSION拓展问题
  • Android 滑动效果入门篇(二)—— Gallery
  • 【Linux系统编程】快速查找errno错误码信息
  • Android Studio:GIT提交项目到远程仓库
  • Codepen 每日精选(2018-3-25)
  • dva中组件的懒加载
  • IndexedDB
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Objective-C 中关联引用的概念
  • passportjs 源码分析
  • Python进阶细节
  • React Native移动开发实战-3-实现页面间的数据传递
  • Spring框架之我见(三)——IOC、AOP
  • uva 10370 Above Average
  • zookeeper系列(七)实战分布式命名服务
  • 高性能JavaScript阅读简记(三)
  • 官方解决所有 npm 全局安装权限问题
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 使用common-codec进行md5加密
  • 异步
  • 异常机制详解
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #13 yum、编译安装与sed命令的使用
  • #define
  • #pragma once与条件编译
  • #Ubuntu(修改root信息)
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (16)Reactor的测试——响应式Spring的道法术器
  • (4)事件处理——(7)简单事件(Simple events)
  • (C++20) consteval立即函数
  • (java)关于Thread的挂起和恢复
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (算法)求1到1亿间的质数或素数
  • (一)UDP基本编程步骤
  • (转) ns2/nam与nam实现相关的文件
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]