您的位置:首页 > 移动开发 > Android开发

Android---添加一个共享操作

2013-04-12 07:44 375 查看
本文译自:http://developer.android.com/training/sharing/shareaction.html

在你的ActionBar中实现一个有效的且对用户友好的共享操作,甚至比在Android4.0(API
Level 14)中引入的ActionProvider更加容易。ActionProvider一旦跟操作栏中的一个菜单项绑定,该菜单项会处理的外观和行为。在ShareActionProvider中,你提供一个共享的Intent对象,其他事情都会由ShareActionProvider来处理。

注意:ShareActionProvider在API Level 14以后有效。

更新菜单声明

要使用ShareActionProviders,就在你菜单资源文件中给对应的<item>元素定义android.actionProviderClass属性:

<menuxmlns: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>

这种委托负责该菜单项的外观和功能。但是你需要告诉该提供器你要共享的内容。



图1.图库(Gallery)应用中的ShareActionProvider。

设置共享的Intent对象

为了让ShareActionProvider指向一个功能,你必须给他提供一个共享的Intent对象。这个共享的Intent对象应该跟“把内容发送给其他应用程序”一课中介绍的相同,它带有ACTION_SEND操作,以及通过EXTRA_TEXT和EXTRA_STREAM附加属性设置的额外数据。要跟一个共享的Intent对象相关联,首先要找到你的Activity或Fragment对象填充菜单时多对应的MenuItem对象。接下来调用MenuItem.getActionProvider()方法来获取一个ShareActionProvider对象实例。使用setShareIntent()方法来更行跟操作项关联的共享的Intent对象。例如:

privateShareActionProvider 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); 

    } 

}

在你菜单创建期间,你只需设置共享的Intent对象,或者是UI改变时来设置并更新它。例如,当在图库应用中全屏浏览照片时,共享的Intent会在照片间切换时发生变化。

有关ShareActionProvider对象的详细讨论,请看Action Bar指南。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐