我们可以通过继承ActionProvider类的方式来创建一个自己的Action Provider,同时,Android也提供好了几个内置的Action Provider,比如说ShareActionProvider 那么我们就先来看一下ShareActionProvider的简单用法吧,编辑menu资源文件,在里面加入ShareActionProvider的声明,如下所示: <menu xmlns:android= </menu> 注意,ShareActionProvider会自己处理它的显示和事件,但我们仍然要记得给它添加一个title,以防止它会在overflow当中出现。 细心的你一定观察到了,这个ShareActionProvider点击之后是可以展开的,有点类似于overflow的效果,这就是Action Provider的子菜单。 除了使用ShareActionProvider之外,我们也可以自定义一个Action Provider,比如说如果想要建立一个拥有两项子菜单的Action Provider,就可以这样写: public
可以结合android.support.v7.widget.SearchView和android.support.v7.widget.ShareActionProvider的源码来了解两者的不同。 For example, the SearchView widget implements an action view for entering search queries, and the ShareActionProvider For example, the following code declares a ShareActionProvider, which is a widget defined in the support "/> In this case, it is not necessary to declare an icon for the widget, since ShareActionProvider provides For information about configuring a ShareActionProvider, see the reference for that class.
android:actionProviderClass="android.widget.ShareActionProvider"表示这个Item是个分享Item 在java代码中进行实现: public boolean onCreateOptionsMenu(Menu menu) { // 添加分享按钮的事件 // 4.0以下没有ShareActionProvider MenuItem menuItem_share mShareActionProvider = (ShareActionProvider) menuItem_share .getActionProvider(); // If you use more than one ShareActionProvider, each for a different // action, // use the following line to specify android:showAsAction="collapseActionView"代表他是一个可拓展的Item Button btnn; EditText editText; private ShareActionProvider
我们可以通过继承ActionProvider类的方式来创建一个自己的Action Provider,同时,Android也提供好了几个内置的Action Provider,比如说ShareActionProvider 那么我们就先来看一下ShareActionProvider的简单用法吧,编辑menu资源文件,在里面加入ShareActionProvider的声明,如下所示: <? </menu> 注意,ShareActionProvider会自己处理它的显示和事件,但我们仍然要记得给它添加一个title,以防止它会在overflow当中出现。 provider = (ShareActionProvider) shareItem .getActionProvider(); provider.setShareIntent 重新运行一下程序,效果如下图所示: 细心的你一定观察到了,这个ShareActionProvider点击之后是可以展开的,有点类似于overflow的效果,这就是Action Provider的子菜单。
或者更高的系统提供一些功能,其中 v7 appcompat library 是提供 Action Bar 相关的界面风格的支持,比如它里面包含了 ActionBar、ActionBarActivity 和 ShareActionProvider
例如,ShareActionProvider的延伸,是ActionProvider行动使“分享”的动作条。 当用户选择一个应用程序使用的功能,ShareActionProvider要选择和行动提供更快的存取到应用当中。 shareActionProvider = (ShareActionProvider) menu.findItem(R.id.menu_share).getActionProvider(); shareActionProvider.setShareIntent(createShareIntent()); ... return super.onCreateOptionsMenu(menu); } 利用ShareActionProvider为例,看ApiDemosActionBarActionProviderActivity
或者更高的系统提供一些功能,其中 v7 appcompat library 是提供 Action Bar 相关的界面风格的支持,比如它里面包含了 ActionBar、ActionBarActivity 和 ShareActionProvider
ShareActionProvider - Adds support for a standardized sharing action (such as email or posting to social
注意:为ActionBar添加分享功能的最佳方法是使用 ShareActionProvider,其运行与API level 14以上的系统。
90" android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider 90" android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider
orderInCategory="90" android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider orderInCategory="90" android:title="action_share" app:actionProviderClass="android.support.v7.widget.ShareActionProvider
library 这个包支持对Action Bar接口的设计模式、Material Design接口的实现等,核心类有ActionBar、AppCompatActivity、AppCompatDialog、ShareActionProvider
query</string> <string name="abc_searchview_description_voice">Voice search</string> <string name="abc_<em>shareactionprovider</em>_share_with ">Share with</string> <string name="abc_<em>shareactionprovider</em>_share_with_application">Share with %s</string