Android中Intent的setData,setType和setDataAndType的区别

原创 2016年05月30日 16:55:20

今天遇到了一个非常可气的问题,当我在Intent里传递图片Uri的时候,出现打开图片时使用Intent.getData()方法返回值为空的这种现象,我很郁闷,后来发现原因。现在给大家写出问题是什么

Intent intent = new Intent("android.intent.action.VIEW");
                intent.setData(mUri);
                intent.setType("image/*");
                intent.putExtra("pictureUrl","file://"+mPath+"/girl.jpg");
                startActivity(intent);
从这段代码你们可以发现我遇到了什么问题么?

有意思的是,两个set方法在源码当中是这么设计的:

public Intent setData(Uri data) {
    mData = data;
    mType = null;
    return this;
}

public Intent setType(String type) {
    mData = null;
    mType = type;
    return this;
}

发现了么,竟然在set值得时候和我以前使用自定义的set ,get方法不一样,两种属性互斥,一定要使用setDataAndType方法,才可以将两个值一起传入,我也是醉了,如下:

Intent intent = new Intent("android.intent.action.VIEW");
                intent.setDataAndType(mUri,"image/*");
                intent.putExtra("pictureUrl","file://"+mPath+"/girl.jpg");
                startActivity(intent);
这个问题研究了一下午,想想挺好笑的,希望有遇到和我一样的问题的同学不要犯这个错误,我给你们提供了借鉴。

android intent.setType("type");的含义

intent.setType(“image/*”);//intent.setType(“audio/*”); //选择音频//intent.setType(“video/*”); //选择视频 (mp...
  • qq_29134495
  • qq_29134495
  • 2016年05月25日 13:37
  • 5414

Android Intent设置类型setType();

android Intent大家都很熟悉了,是连接各大组件的桥梁,调用意图发送短信,彩信,打开指定网页,打开照相机,读取相册图片等等... 这里介绍两个平时用的比较多的两种意图: 一.调用手机默认...
  • a_ycmbc
  • a_ycmbc
  • 2016年05月12日 09:37
  • 7027

android Intent.setType() 过滤图片,返回所有的文件类型

我想在我的app中通过Intent从启动的应用程序中刚抓取图片 我尝试使用如下代码:   Intent intent = new Intent("android.intent.actio...
  • javawebsoa
  • javawebsoa
  • 2014年12月25日 17:24
  • 2988

Android Intent设置类型setType();

Android Intent大家都很熟悉了,是连接各大组件的桥梁,调用意图发送短信,彩信,打开指定网页,打开照相机,读取相册图片等等... 这里介绍两个平时用的比较多的两种意图: 一.调用...
  • android_lover2014
  • android_lover2014
  • 2016年09月29日 10:12
  • 1352

关于Intent的七大属性

原谅我愚昧,Intent七大属性这个概念我也是昨天才接触到,看了一下,都是一些常用的东西,就是没有总结过,那么今天就来简单总结一下。Intent七大属性是指Intent的ComponentName、A...
  • u012702547
  • u012702547
  • 2015年12月05日 11:21
  • 8669

Android中Intent的setData,setType和setDataAndType的用法

Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。利用Int...
  • gf771115
  • gf771115
  • 2012年08月03日 15:50
  • 31603

intent.setDataAndType()

Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。利用Int...
  • cao478208248
  • cao478208248
  • 2014年03月26日 14:59
  • 891

Android通过setDataAndType(uri, "type")打开文件

android打开文件,intent的使用
  • luzhenyuxfcy
  • luzhenyuxfcy
  • 2015年09月15日 14:25
  • 5892

Intent setType、setData和setDataAndType的区别

今天在调用音乐播放器的时候Intent intent2 = new Intent(Intent.ACTION_VIEW); intent2.addFlags(Intent.FLAG_ACTIVITY_...
  • u012156163
  • u012156163
  • 2016年03月09日 11:05
  • 1114

Android Intent设置类型setType()-调用手机默认分享和读取相册图片

Android Intent设置类型setType(); 标签: androidIntent意图 2016-05-12 09:37 1584人阅读 评论(0) 收藏 举...
  • dianziagen
  • dianziagen
  • 2017年03月17日 11:49
  • 766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中Intent的setData,setType和setDataAndType的区别
举报原因:
原因补充:

(最多只允许输入30个字)