在14(4.0)之后可以实现一个有效的友好的用户分享Action在我们的ActionBar上面(ActionProvider)。一个ActionProvider ,一旦关联在ActionBar的一个菜单项上,处理这个菜单项的外观和行为。
更改Menu的声明
开始用ShaerActionProvides的时候,定义android:actionProviderClass这个属性到我们对应的<item>中
<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>
效果图如上
设置我们要分享的Intent
为了让我们的ShareActionProvider器作用,我们必须提供一个share Intent。
首先在Activity或者是Fragment填充我们Menu资源的时候,找到对应的MenuItem。接着就是调用MenuItem.getActionProvider()这个方法了来检索一个ShareActionProvider的实例了。使用setShareIntent() 来更新share Intent 关联的action项。例子如下:
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);
}
}
本文详细介绍了如何在Android应用的ActionBar上实现一个有效的友好的用户分享Action,包括通过定义ActionProvider和设置要分享的Intent来增强用户体验。

被折叠的 条评论
为什么被折叠?



