文档章节

ActionBar之Share的用法

火文乐武
 火文乐武
发布于 2016/05/13 21:34
字数 247
阅读 6
收藏 0
@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);

		//	通过菜单的id找到一个菜单项
		MenuItem item = menu.findItem(R.id.action_share);

		//	将该菜单项强制转换为ShareActionProvider对象(xml中设置了actionProvider的值为ShareActionProvider)
		ShareActionProvider actionProvider = (ShareActionProvider) item
				.getActionProvider();

		//	构建intent对象
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_SEND);

		//	分享文字内容
//		shareText(intent);

		//	分享图片内容
		shareImage(intent);

		//	分享的历史记录的顺序存放在指定的文件中
		actionProvider.setShareHistoryFileName("myHistory");

		//	实现内容的分享
		actionProvider.setShareIntent(intent);

		return true;
	}

	private void shareImage(Intent intent) {
		
		//	设置要分享的图片的路径
		String path = Environment.getExternalStorageDirectory()
				.getAbsolutePath() + File.separator + "baidu.png";
		
		try {
			//	将该图片路径转换为一个uri对象
			URI uri = new URI(path);
			
			//	将uri对象放置在intent对象中
			intent.putExtra(Intent.EXTRA_STREAM, uri.toString());
			
			//	设置intent的type属性(图片格式)
			intent.setType("image/*");
		} catch (URISyntaxException e) {
			e.printStackTrace();
		}
	}

	private void shareText(Intent intent) {
		
		//	给intent放置文字信心
		intent.putExtra(Intent.EXTRA_TEXT,
				"hello zz 1603, this is my shared text.");
		
		//	设置intent对象的类型为文字类型
		intent.setType("text/*");
	}

 

© 著作权归作者所有

共有 人打赏支持
火文乐武
粉丝 7
博文 38
码字总数 17183
作品 0
郑州
Android工程师
Android开发——Toolbar组件用法详解

本文重点讲述Android Toolbar的用法,包括它的一些概念和注意事项,现在总结出来分享给Android程序员兄弟们。本文的例子都是基于Android5.0+。 Toolbar Toolbar是什么?大概说一下它的官方介...

Erichkko
2015/12/02
275
0
Navigation Drawer详解-Google推出的用来取代Sliding Menu的控件(二

第一篇我们就google官方给出的Navigation Drawer demo做了一个简单的介绍,细心的童鞋可能已经发现问题了,google虽然是在support v4中添加的这个控件,但是他给的demo中却使用了ActionBar!...

科技创造
2014/10/08
0
0
Android ToolBar 的简单封装

使用过 ToolBar 的朋友肯定对其使用方法不陌生,因为其用法很简单,如果对 ActionBar 使用比较熟练的人来说,ToolBar 就更容易了!不过,相信大家在使用的过程中都遇到过这样一个问题,需要在...

丁佳辉
2015/09/24
533
0
ActionBar学习笔记(二)

八、在ActionBar上添加导航tab Tabs的应用可以算是非常广泛了,它可以使得用户非常轻松地在你的应用程序中切换不同的视图。而Android官方更加推荐使用ActionBar中提供的Tabs功能,因为它更加...

紫韵
2016/02/21
29
1
Android 透明(沉浸式)状态栏设计

一.透明(沉浸式)状态栏设计 通过第三方代码实现透明状态栏的主要代码如下。 用法如下 注意:状态栏透明可能导致布局向上便宜,所以需要设置根布局的android:fitsSystemWindows="true" 二....

IamOkay
2015/01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于pip

我在更新pip的时候碰到的一些问题。 第一次安装,直接安装就ok了,所以也没研究,没想到后来由于安装了python2.x和python3.x之后出现了问题。 如果要将pip更新到最新版本需要指明是哪个版本的...

恰东
34分钟前
1
0
对硬盘进行分区时,GPT和MBR有什么区别

在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。 GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的...

yizhichao
36分钟前
3
0
区块链教程btcpool矿池源码分析StratumServer模块解析

兄弟连区块链教程btcpool矿池源码分析StratumServer模块解析 核心机制总结 接收的job延迟超过60秒将丢弃 如果job中prevHash与本地job中prevHash不同,即为已产生新块,job中isClean状态将置为...

兄弟连区块链入门教程
37分钟前
1
0
JS中的异常捕获

JS中的异常捕获(目的:把抛出的错误捕获到,不让其阻断浏览器的继续执行) try{//需要执行的JS代码(可能会报错)}catch(e){//try中代码报错,会执行catch}finally{//不管try中的代...

NDweb
46分钟前
2
0
ObjectARX_AcDb2dPolyline复杂实体

1遍历:访问或者编辑复杂实体也需要通过特定的方式。 AcDb2dPolyline的顶点信息不能通过AcDb2dPolyline对象直接得到,需要遍历AcDb2dPolyline所包含的AcDb2dVertex对象: void IteratePolylin...

一个小妞
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部