Intent的使用详解

在这里插入图片描述
1.显式Intent与隐式Intent的区别
· 显式Intent:通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~
· 隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-filter,逐一匹配出满足属性的组件,当不止一个满足时, 会弹出一个让我们选择启动哪个的对话框~
常用情况

//1.拨打电话
// 给移动客服10086拨打电话、
权限
Uri uri = Uri.parse("tel:10086");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
 
//2.打开浏览器:
// 打开百度主页
Uri uri = Uri.parse("http://www.baidu.com");
Intent intent  = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
//3.发送短信
// 给10086发送内容为“Hello”的短信
Uri uri = Uri.parse("smsto:10086");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "Hello");
startActivity(intent);

Intent传递数据
可以传递那些数据类型?
一、8种基本数据类型(int short long byte float double char boolean)及其数组

在这里插入图片描述
二、 String(String实现了 Serializable )
在这里插入图片描述

三、实现了Parcelable的对象及其数组
在这里插入图片描述

四.实现了 Serializable 的对象及其数组

集合传递
在这里插入图片描述

  1. Serializable,将对象序列化成二进制数据传递
  2. parcelable: 这个android提供的一种新的类型,用来封装数据的容器,和Serializable相似,但是序列化的方式不同
    parcelable和Serializable的区别又是什么呢?
    Serializable的作用是保存对象的属性到本地文件,数据库,网络流等方便数据传输,也可程序之间传递。
    parcelable的设计的目的是为了解决Serializable效率不高的问题,内存开销小,所以在内存间传递数据的方式用parcelable,缺点是不能持久化。

跳转回传
被传值方

startActivityForResult(intent, 38);请求码
 
@Override
protected void onActivityResult(int requestCode请求码, int resultCode返回码, Intent data) {
    Bundle bundle = data.getExtras();
    String name = bundle.getString("name");
    int age = bundle.getInt("age");
    float weight = bundle.getFloat("weight");
    Toast.makeText(MainActivity.this, name+age+weight, Toast.LENGTH_LONG).show();
    super.onActivityResult(requestCode, resultCode, data);
    }
 
传值方
Intent data = new Intent();
data.setClass(SecondActivity.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "张无忌");
bundle.putInt("age", 20);
bundle.putFloat("weight", 120.5f);
data.putExtras(bundle);
setResult(250, data);
finish();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值