Android Training - 06】分享数据内容 [Lesson 3 - 在ActionBar上添加Share Action]
2013-04-28 17:35
671 查看
【Android Training - 06】分享数据内容 [Lesson 3 - 在ActionBar上添加Share Action]
分类: Android2012-03-31 19:16 1245人阅读 评论(0) 收藏 举报androidactiontrainingmenustreamfunction
目录(?)[+]
Adding an Easy Share Action[增加一个简单的分享Action]
这一课会介绍在ActionBar中添加一个高效率且比较友好的Share功能,会使用到ActionProvider(在Android 4.0上才被引进)。它会handle出现share功能的appearance与hehavior。在ShareActionProvider的例子里面,你之需要提供一个share intent,剩下的就交给
ShareActionProvider来做。
注意:ShareActionProvider是Android 4.0之后才有的。
![](http://my.csdn.net/uploads/201203/31/1333192088_8675.png)
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,谢谢!
相关文章推荐
- 【Android Training - 06】分享数据内容 [Lesson 3 - 在ActionBar上添加Share Action]
- 【Android Training - 06】分享数据内容 [Lesson 1 - 发送分享的数据到其他App]
- 【Android Training - 06】分享数据内容 [Lesson 2 - 从其它app接收分享的内容]
- 【Android Training - 06】分享数据内容 [Lesson 0 - 章节概览]
- 【Android Training - 06】分享数据内容 [Lesson 1 - 发送分享的数据到其他App]
- 【Android Training - 06】分享数据内容 [Lesson 2 - 从其它app接收分享的内容]
- Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为
- Google Android开发者文档系列-创建有内容分享特性的应用之发送简单数据到其它应用程序
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 2 - 调整定时更新的频率(C2DM与退避算法)]
- 【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目
- Android中给数据库添加EditText中内容,添加后数据为空的情况
- Google Training 建立分享内容的APP ------ 分享简单的数据
- Android官方开发文档Training系列课程中文版:添加ActionBar之设置ActionBar
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 3 - 使用缓存来避免重复的下载]
- Android - 分享内容 - 添加一个简单的分享操作
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 1 - 看无线电波如何影响网络操作]
- 【Android Training - 04】保存数据 [ Lesson 2 - 保存文件]
- Android中通过ActionBar为标题栏添加搜索以及分享视窗
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式]
- Google Android开发者文档系列-创建有内容分享特性的应用之添加一个简单的共享action