使用ShareActionProvider实现分享功能
来源:互联网 发布:迟瑞与知夏圆房视频 编辑:程序博客网 时间:2024/09/21 11:24
这几天做一个App用到了分享功能,最后用ShareActionProvider实现了,由于是在appcompat-v7使用ShareActionProvider,实现过程中遇到了几个坑,在此记录一下,方便以后查看。
1、首先在菜单xml文件中添加ShareActionProvider的item:
<item
android:id="@+id/menu_item_share"
app:showAsAction="ifRoom"
android:title="Share"
app:actionProviderClass=
"android.support.v7.widget.ShareActionProvider"/>
2、在Activity中定义ShareActionProvider:
privateShareActionProvider mShareActionProvider;
注意到导入的包是:importandroid.support.v7.widget.ShareActionProvider, 与xml文件中保持一致。
3、在onCreateOptionsMenu()中获取ShareActionProvider,并设置Intent:
@Override
public booleanonCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
// mShareActionProvider = (ShareActionProvider) item.getActionProvider();
mShareActionProvider=(ShareActionProvider)MenuItemCompat.getActionProvider(item);
Intent sendIntent =newIntent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,news.link);
sendIntent.setType("text/plain");
setShareIntent(sendIntent);
// Return true to display menu
return true;
}
//Call to update the share intent
private voidsetShareIntent(Intent shareIntent) {
if(mShareActionProvider!=null) {
mShareActionProvider.setShareIntent(shareIntent);
}
}
注意:在获取ShareActionProvider时使用的是MenuItemCompat.getActionProvider(item)方法,官网给出的方法是item.getActionProvider(),但在v7包中使用ShareActionProvider这种方法不可行,
StackOverflow上有人给出的方法使用MenuItemCompat.getActionProvider(item),详情请参考:http://stackoverflow.com/questions/27887716/exception-this-is-not-supported-use-menuitemcompat-getactionprovider。
最后效果:
2 0
- 使用ShareActionProvider实现分享功能
- ShareActionProvider使用
- ShareActionProvider 分享API之 DynamicShareActionProvider
- ShareActionProvider的使用
- ShareActionProvider
- 怎么使用mob实现分享功能
- 使用AppCan实现分享网站功能
- iOS --- 使用UIActivityViewController实现分享功能
- 不使用第三方分享框架实现分享功能
- 在界面布局中使用ShareActionProvider
- android 实现分享功能
- 分享功能实现
- android实现分享功能
- android 实现分享功能
- android 实现分享功能
- 实现邮件分享功能
- android 实现分享功能
- android 实现分享功能
- Eclipse快捷键
- Android造轮子必须了解的建筑者模式
- Spring IOC
- MongoDB -- 复制集搭建
- Asp.Net页面刷新SessionID总是变化
- 使用ShareActionProvider实现分享功能
- axure 7.0 license key
- Java编程思想第四版第十章学习——内部类(2)
- 开始学JavaScript
- 服务器安装linux后,网卡位置和系统内的编号乱了怎么解决?
- ElasticSearch实战-编码实践
- 六大设计原则
- VIM 配置ctags/cscope 函数跳转
- iOS获取字符串(或汉字)首字母