博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
###Intent的使用(活动中穿梭)
阅读量:6649 次
发布时间:2019-06-25

本文共 2822 字,大约阅读时间需要 9 分钟。

让活动切换有两种方式

  显示意图和隐式意图

显示意图:只能在本应用中穿梭;

隐式意图:可以调用其他应用程序的活动,包括系统应用,但是需要配置清单文件

  1. 显式Intent

1) 创建一个新的活动

2) 确定进入新活动的条件

1 Intent intent = new Intent(FirstActivity.this, SecondActivity.class);//第一个参数为上下文,第二个参数是新活动的类2 startActivity(intent); //启用活动

 

也可以使用方法

getClass(上下文,class);

  1. 隐式Intent

配置清单文件

1  
4
5
6
7
8
9
10

 

 

 

###在活动之间传递数据

隐式意图和显示意图都是可以传递数据的

普通数据的的传值方式

  1. 向下一个活动传递数据

1) 发送方:

a)      new一个intent

b)      使用方法putExtra(“键值”,传递的数据);来传递数

c)      startActivity(intent); //启用活动

1 //隐式传值2  Intent intent = new Intent();3  intent.putExtra("Myage", age);4  intent.putExtra("Myname", name);5  intent.setClass(MainActivity.this,MainActivity_2.class);     startActivity(intent);

 

 

 

1 //显式传值    2 Intent intent = new Intent();3 intent.putExtra("Myage", age);4 intent.putExtra("Myname", name);5 intent.setAction("android.intent.action.MyIntent");6 startActivity(intent);

 

2) 接收方:

a)      创建一个intent对象 = getIntent();

b)      使用方法getStringExtra(“键值”);来得到数据-----此方法返回一个String

1 Intent intent = getIntent();2 String age = intent.getExtra("Myage");3 String name = intent.getExtra("Myname");

 

Bundle传递值的方式

1)  发送方

a)      new一个intent

b)  new一个Bundle

c)  Bundle使用方法putString(“键值”,数据);

d)      Intent使用方法putExtra(Bundle);

e)      startActivity(intent); //启用活动

1     Intent intent = new Intent();2     Bundle bundle = new Bundle();3     bundle.putString("Myname", name);4     bundle.putString("Myage", age);5     intent.putExtras(bundle);6     intent.setClass(MainActivity.this, MainActivity_2.class);7     startActivity(intent);

 

2)  接收方

a)      创建一个intent对象 = getIntent();

b)  创建一个Bundle对象 = intent.getExtra();

b)      Bundle使用方法getString(键值”);来得到数据-----此方法返回一个String

1     Intent intent = getIntent();2     Bundle bundle = intent.getExtras();3     String age = bundle.getString("Myage");4     String name  = bundle.getString("Myname");

 

数据的回传

1) 创建的第一个活动

a)      建立Intent,并找到第二个活动

b)      startActivityForResult(intent, 数据请求值);//数据请求值是一个int

c)      重写方法

//用来处理回传值的//第一个int是接收是第一个活动创建时的请求值//第二个int是接收是第二个活动返回数据时的请求值//第三个参数是接收的数据protected void onActivityResult(int requestCode, int resultCode, Intent data) {       // TODO Auto-generated method stub       switch (requestCode) {       case 1:           if (resultCode == RESULT_OK) {              String returnData = data.getStringExtra("return_data");              Toast.makeText(FirstActivity.this, returnData, Toast.LENGTH_LONG).show();              Log.i("回传数据",returnData);           }           break;       default:       }       super.onActivityResult(requestCode, resultCode, data);}

 

2) 创建的第二个活动

a)      创建一个intent对象

c)      使用方法intent的方法putExtra(“键值”,传递的数据);来传递数

b)      setResut(数据处理结果,intent);//数据处理结果通常是RESULT_OK和RESULT_CANCELED

c)      销毁活动

注意:可以自定义一个按钮在销毁活动的同时传递数据,也可以重写onBackPressed()方法

该方法表示:当用户按下BACK按键时所进行的动作

 

转载于:https://www.cnblogs.com/tangwanzun/p/5702276.html

你可能感兴趣的文章
硬盘分区后丢失的文件怎么恢复
查看>>
Codevs 1021 (玛丽卡)
查看>>
C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析
查看>>
电梯模拟系统——BUAA OO第二单元作业总结
查看>>
V3 微信支付-预支付C#
查看>>
legend2---开发日志6(后端和前端如何相互配合(比如php,js,元素状态和数据改变))...
查看>>
关于宏的一点注意
查看>>
CentOS7.0使用Yum安装Nginx
查看>>
laravel获取checkbox值的小技巧
查看>>
安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2出现0x80072f8a未指定的错误
查看>>
Java关于String类的赋值符号一些验证
查看>>
android OTA更新
查看>>
copyright symbol issue
查看>>
【树状数组】Codeforces Round #755 D. PolandBall and Polygon
查看>>
二维数组遍历的方式(for普通循环遍历、foreach循环遍历、toString方式遍历)
查看>>
递归神经网络RNN桨距控制控制风力发电机组
查看>>
R语言混合时间预测更好的时间序列点估计
查看>>
wireshark过滤规则(两年前记录在qq空间的日志)
查看>>
django基础-ORM操作
查看>>
javascript 关于倒计时与输入框选中状态的判断
查看>>