Android 系列 6.6向操作栏添加共享操作
来源:互联网 发布:拖欠淘宝贷款 编辑:程序博客网 时间:2024/05/09 00:05
6.6向操作栏添加共享操作
问题
您要将标准“共享”图标添加到操作栏,并使其处理应用程序提供的Intent。
解
使用菜单项中的actionProviderClass属性,设置一个Intent来处理,并将Intent传递给ActionProvider。它真的是那么简单!
讨论
共享信息是移动和计算设备的规范使用之一。让一个应用程序使用另一个应用程序来处理数据是Android平台的主要功能。 Android提供了一个“共享”菜单,允许您将文本,图像或几乎任何其他内容传递到任何要处理的应用程序。
例如,让我们来看看如何将一个短字符串导出(共享)为“纯文本”;这将被共享到(可接受)相当多的应用程序,但Android将选择“最受欢迎”放在共享菜单的顶部。
我们首先添加一个将进入ActionBar的菜单项。
在我们的onCreate()方法中,我们创建一个具有ACTION_SEND操作的Intent,一个纯文本的内容类型,以及我们想要共享的字符串的Extra。没有什么特别的文本 - 这种机制可以共享几乎任何类型的数据,只要有至少一个应用程序注册了Intent过滤器为给定的内容类型。
最后,在我们的菜单创建方法中,我们通过它的ID找到MenuItem,请求它的ActionProvider(这是需要API级别14的地方);如果我们发现,我们只是添加共享意向吧!
这真的是所有的。
当我们第一次运行应用程序,它看起来像这样:
点击共享图标,并显示共享菜单 - 所有的礼貌ShareActionProvider!如上所述,最可能的应用程序在列表的顶部;其余的被委派给“查看全部”部分。
我选择了消息应用程序,就像一个快速现实检查,发送给自己。
消息到达!
请注意,如果您以后返回启动共享的应用程序,如果ActionBar中有空间,则您选择共享的应用程序(在我的例子中为Messaging)会出现在“共享”图标旁边,这是一个整洁的优化!
问题
您要将标准“共享”图标添加到操作栏,并使其处理应用程序提供的Intent。
解
使用菜单项中的actionProviderClass属性,设置一个Intent来处理,并将Intent传递给ActionProvider。它真的是那么简单!
讨论
共享信息是移动和计算设备的规范使用之一。让一个应用程序使用另一个应用程序来处理数据是Android平台的主要功能。 Android提供了一个“共享”菜单,允许您将文本,图像或几乎任何其他内容传递到任何要处理的应用程序。
例如,让我们来看看如何将一个短字符串导出(共享)为“纯文本”;这将被共享到(可接受)相当多的应用程序,但Android将选择“最受欢迎”放在共享菜单的顶部。
我们首先添加一个将进入ActionBar的菜单项。
<menu xmlns:android="http://schemas.android.com/apk/res/android” ><item android:id="@+id/menu_item_share"android:showAsAction="ifRoom"android:title="@string/action_share"android:actionProviderClass="android.widget.ShareActionProvider" />...</menu>
在我们的onCreate()方法中,我们创建一个具有ACTION_SEND操作的Intent,一个纯文本的内容类型,以及我们想要共享的字符串的Extra。没有什么特别的文本 - 这种机制可以共享几乎任何类型的数据,只要有至少一个应用程序注册了Intent过滤器为给定的内容类型。
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mShareIntent = new Intent();mShareIntent.setAction(Intent.ACTION_SEND);mShareIntent.setType("text/plain");mShareIntent.putExtra(Intent.EXTRA_TEXT, "From me to you, this text is new.");}
最后,在我们的菜单创建方法中,我们通过它的ID找到MenuItem,请求它的ActionProvider(这是需要API级别14的地方);如果我们发现,我们只是添加共享意向吧!
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);// Find the MenuItem that we know has the ShareActionProviderMenuItem item = menu.findItem(R.id.menu_item_share);// Get its ShareActionProvidermShareActionProvider = (ShareActionProvider) item.getActionProvider();// Connect the dots: give the ShareActionProvider its Share Intentif (mShareActionProvider != null) {mShareActionProvider.setShareIntent(mShareIntent);}// Return true so Android will know we want to display the menureturn true;}
这真的是所有的。
当我们第一次运行应用程序,它看起来像这样:
点击共享图标,并显示共享菜单 - 所有的礼貌ShareActionProvider!如上所述,最可能的应用程序在列表的顶部;其余的被委派给“查看全部”部分。
我选择了消息应用程序,就像一个快速现实检查,发送给自己。
消息到达!
请注意,如果您以后返回启动共享的应用程序,如果ActionBar中有空间,则您选择共享的应用程序(在我的例子中为Messaging)会出现在“共享”图标旁边,这是一个整洁的优化!
0 0
- Android 系列 6.6向操作栏添加共享操作
- Android---添加一个共享操作
- Android---添加一个共享操作
- Android官方文档---添加一个共享操作
- 向Android操作栏中添加操作项和浮动菜单项
- [Android系列—] 4. 添加操作栏(Action Bar)
- 向map中添加成员操作
- Android 添加手势操作
- Android新建文件共享操作
- Android 系列 6.5控制操作栏
- 共享操作
- Android 添加桌面快捷方式操作
- Android中数据共享的操作
- ASP.Net 向xml文件中添加数据(insert操作)
- 如何向Word文档添加操作窗格
- ASP.Net 向xml文件中添加数据(insert操作)
- mysql操作(创建表,向表中添加数据)
- Android 系列 5.3向OpenGL旋转立方体添加控件
- 模拟QQ上面的导航按钮
- Jsp页面上传图片和缩略图查看
- 也谈程序性能测试
- 用fiddler进行安全性测试——X5S插件
- CUDA流多处理器(stream multiprocessor,sm)和硬件流处理器(stream processor,sp)
- Android 系列 6.6向操作栏添加共享操作
- mongodb关联数据的设计
- 我的宠物
- SDAutoLayout设置富文本时,label算高的问题
- Spring+Quartz实现定时任务
- ViewPager实现Recycle机制和响应notifyDataSetChanged
- code(vs)1220 数字三角形(普通dp)
- SpringMVC整合Freemaker
- 赋值运算符和操作符重载