Android - 分享内容 - 添加一个简单的分享操作
在ActionBar上使用ActionProvider实现一个高效的友好的分享操作在Android 4.0(API等级14)上更容易了。一个ActionProvider,一旦附加到action bar的菜单上了,就会处理外观和行为上的操作,至于ShareActionProvider,你值需要提供分享intent,然后它会完成剩下的事情。
注意:ShareActionProvider从API等级14以及更高版本中可用。
更新菜单的声明
要使用ShareActionProviders,在菜单资源文件中为相应的<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你需要分享什么。
图1.Gallery app中的ShareActionProvider
设置分享Intent
为了让ShareActionProvider能运行,需要提供一个分享intent。这个分享intent应该和前面讲的一致,带有ACTION_SEND操作和附加的数据,像EXTRA_TEXT或EXTRA_STREAM。要分配一个分享intent,在加载菜单资源时首先要找到相应的MenuItem。接下来,调用MenuItem.getActionProvider()来获得ShareActionProvider实例。使用setShareIntent()来更新相关的分享intent。这里有一个例子:
private ShareActionProvider mShareActionProvider;
... @Override
public boolean onCreateOptionsMenu(Menu menu) {
// 加载菜单资源文件
getMenuInflater().inflate(R.menu.share_menu, menu); // 用ShareActionProvider定位MenuItem
MenuItem item = menu.findItem(R.id.menu_item_share); // 获取并存储ShareActionProvider
mShareActionProvider = (ShareActionProvider) item.getActionProvider(); // 然后true来显示菜单
return true;
} // 调用来更新share intent
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(shareIntent);
}
}
你可能需要设置一次share intent来创建自己的菜单,或者在UI改变时设置并更新它。比如,当才Gallery app中全屏查看照片时,sharing intent会在照片切换时改变。
更多关于ShareActionProvider的信息, 查看Action bar介绍。
Android - 分享内容 - 添加一个简单的分享操作的更多相关文章
- 【Android Developers Training】 34. 添加一个简单的分享行为(Action)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Expression Blend4经验分享:制作一个简单的图片按钮样式
这次分享如何做一个简单的图片按钮经验 在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮 http://raimon.6.gwidc.com/Iphone/de ...
- oracle常见为题汇总,以及一个简单数据连接操作工厂
本人软件环境:win8.1 64位操作系统,vs2013,安装好了与oracle数据库对应的客户端 连接oracle数据库.以及操作数据库 1.使用IIS建立网站,浏览网页时候,提示“ ...
- Expression Blend4经验分享:制作一个简单的文字按钮样式
首先在Grid里放一个TextBlock,对象时间线窗口的结构树如下 右键点击grid,选择构成控件 会弹出构成控件的对话框,选择你要构成的控件类型,控件名称,控件样式存储位置 这里我们选择butto ...
- 【jQuery插件分享】Cropper——一个简单方便的图片裁剪插件
原文:https://segmentfault.com/a/1190000012344970 插件介绍 这是一个我在写以前的项目的途中发现的一个国人写的jQuery图像裁剪插件,当时想实现用户资料的头 ...
- 我的Android进阶之旅------>Android关于Log的一个简单封装
android.util.Log类,可以方便地用于在编码调试过程中打印日志.但是在发布后的产品中,如果有太多的日志打印,则会严重地影响性能.对android.util.Log类做一个简单的封装,当产品 ...
- 我的Android进阶之旅------>Android关于Log的一个简单封装
android.util.Log类,能够方便地用于在编码调试过程中打印日志. 可是在公布后的产品中,假设有太多的日志打印.则会严重地影响性能. 对android.util.Log类做一个简单的封装.当 ...
- AWVS漏洞测试-02节-添加一个简单的新闻系统
实现一个简单的新闻发布系统 有登录 注册 添加新闻 浏览新闻 评论新闻 新闻列表 这些基本功能 使用asp.net webform 首先是登录页 protected void Button1_Clic ...
- Android 向系统添加一个联系人信息contact
private void writeContacts() { Uri rawContacts = Uri.parse("content://com.android.contacts/raw_ ...
随机推荐
- hdu2063+hdu1083(最大匹配数)
传送门:hdu2063过山车 #include <cstdio> #include <cstring> #include <string> #include < ...
- 2014/08/23——OJ出现waiting...
问题: 今天中午,裴主解决OJ他缓慢的问题后,开着.我跟着oj他递给发现了一个话题waiting该..... 和全哥.均觉得測评程序挂了.于是重新启动測系统,还waiting.....(測评系统的进程 ...
- Factorization Machines 学习笔记(四)学习算法
近期学习了一种叫做 Factorization Machines(简称 FM)的算法.它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...
- BT渗透工具使用学习笔记
BT51.信息收集2.扫描工具3.漏洞发现4.社会工程学工具5.运用层攻击MSF6.局域网攻击7.密码破解8.维持访问一.DNS信息收集1.Dnsenum/pentest/enumeration/dn ...
- Android学习-各种对话框
在android的编程中,对话框的用处是非常多的,然而,有时对对话框的需求也是不一样的,那么现在,就总结对话框的种类,以及事件的处理形势. 1.简单的对话框 public void showDialo ...
- HEVC码率控制浅析——HM代码阅读之二
上一篇文章主要讨论了RC的总体框架,本文开始分析具体的代码实现细节.分析的顺序按照总体框架来,即初始化-->更新. (1)m_cRateCtrl.init() #if M0036_RC_IMPR ...
- ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 438, event_type: 2
分析从库1062问题,解析从库binlog日志,报错如下 [root@xxxdb0402 tmp]# mysqlbinlog mysql-bin.004271 > 4.log ERROR: Er ...
- 《WordPress插件开发手冊》文件夹
翻译前言:国内没有关于WordPress插件开发比較具体而且系统的资料 前言 第一章:准备一个本地开发环境 介绍 在你的电脑上安装一个站点server 下载并配置一个本地的WordPress 创建一个 ...
- c#与oracle数据库连接池
c#与oracle数据库连接池 在做一个项目,中间要使用webservice和oracle数据库.我在服务端做了用户身份认证,也就是使用session传递用户的登陆信息.在测试时,当用户少的时候,没有 ...
- 在ubuntu安装Phabricator(转)
前言: Phabricator是facebook团队进行codereview的一个工具,是基于php进行开发的.界面简洁优雅,是团队做代码评审的好帮手.个人认为,是当前最好的code review平台 ...