Adding an Easy Share Action 添加一个简单的共享行动
来源:互联网 发布:mac pro retina 编辑:程序博客网 时间:2024/05/22 06:35
Implementing an effective and user friendly share action in your ActionBar
is made even easier with the introduction ofActionProvider
in Android 4.0 (API Level 14). An ActionProvider
, once attached to a menu item in the action bar, handles both the appearance and behavior of that item. In the case ofShareActionProvider
, you provide a share intent and it does the rest.
Note: ShareActionProvider
is available starting with API Level 14 and higher.
Update Menu Declarations
To get started with ShareActionProviders
, define theandroid:actionProviderClass
attribute for the corresponding <item>
in yourmenu resource file:
<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>
This delegates responsibility for the item's appearance and function to ShareActionProvider
. However, you will need to tell the provider what you would like to share.
Set the Share Intent
In order for ShareActionProvider
to function, you must provide it a share intent. This share intent should be the same as described in theSending Content to Other Apps lesson, with action ACTION_SEND
and additional data set via extras likeEXTRA_TEXT
and EXTRA_STREAM
. To assign a share intent, first find the correspondingMenuItem
while inflating your menu resource in your Activity
or Fragment
. Next, callMenuItem.getActionProvider()
to retreive an instance ofShareActionProvider
. Use setShareIntent()
to update the share intent associated with that action item. Here's an example:
private ShareActionProvider mShareActionProvider;...@Overridepublic 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 intentprivate void setShareIntent(Intent shareIntent) { if (mShareActionProvider != null) { mShareActionProvider.setShareIntent(shareIntent); }}
You may only need to set the share intent once during the creation of your menus, or you may want to set it and then update it as the UI changes. For example, when you view photos full screen in the Gallery app, the sharing intent changes as you flip between photos.
For further discussion about the ShareActionProvider
object, see theAction Bar guide.
- Adding an Easy Share Action 添加一个简单的共享行动
- Adding an Easy Share Action
- 《Training:Adding an Easy Share Action》
- 添加一个简单Share Action
- 添加一个向前导航的动作(Adding an Up Action)
- Google Android开发者文档系列-创建有内容分享特性的应用之添加一个简单的共享action
- 添加react到已存在的项目中(Adding React to an Existing Application)-1
- 添加react到已存在的项目中(Adding React to an Existing Application)-2
- 使用更简单的共享Action
- 和其他App分享简单的数据(3)添加一个简单的分享Action
- hdoj1076 An Easy Task(简单题)
- when adding column with default value ,当添加一个有默认值的列的时候
- AN popwindow使用的一个简单例子
- Adding the Action Bar - Adding Action Buttons
- linux下samba服务器share的共享
- <<iText in Action 2nd>>4.4 (Adding a table at an absolute position)读书笔记
- 成为一个行动的巨人
- 04 Adding Action Buttons
- 小创新,不同业务场景使用不同的map
- 学科前沿技术(人工智能与智能系统中的先驱人物)
- An old Stone Game ~~GarsiaWachs算法
- Ubuntu下解压rar文件的方法
- 变态问题之禁用C部分关键字
- Adding an Easy Share Action 添加一个简单的共享行动
- apache 实现url 重写
- 设置超链接
- 25条提高iOS App性能的建议和技巧
- Taking Photos Simply 简单地拍摄照片
- VB ListView控件各种操作详解
- 网站开发:XMPP之Stream节点属性
- 安装WTL
- Ext 根据数据库返回json动态生成grid列表