Activity的跳转及返回值 的四种方法
Activity生命周期
从创建到销毁的生命周期:
onCreate()→onStart()→onResume()→onPouse()→onStop()→onDestroy()
从起动到后台再到前台:
onCreate()→onStart()→onResume()→onPouse()→onStop()→onRestart()→onStart()→onResume()
启动第二个activity
1.创建new activity
2.创建对应的new xml布局文件
3.在new activity中setContentView(R.layout.new xml);关联起来
4.将new activity在AndroidMainfest.xml中注册一下, 包括改名字name属性、intent_filter设置首启动页面
在原来<activity 。。。/>下加入新的
样式效果 可不做
Activity跳转
Eg:
Intent intent = new Intent(xxx.this,xxx.class);
startActivity(intent);----------------------------------------------------无返回值
1. Intent:意图,协助完成Android各个组件之间的通讯
2.
①startActivity(intent)
②startActivityForResult(intent,requestCode)//有返回值
onActivityResult(int requestCode,intresultCode,Intent data)//接收返回值A页面
setResult(resultCode,data)//设置返回值B页面
-------------------------------------我是华丽丽的分界线------------------------------------------
第1种方法
Intent intent = new Intent(Second.this,first.class);
startActivity(intent);----------------------------------------------------无返回值
第2种方法(有返回值)
bt1.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(this, class);
startActivityForResult(intent,1);
}
});
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == 2){
String a = data.getStringExtra( "AAA");
tv.setText(a);
}
----------------------------------------------------华丽丽de分界线---------------------------------------
bt2.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(); //回传intent不需要参数了
String s= (String) tv.getText();
intent.putExtra( "AAA",s); //给意图intent添加key、value
setResult(2, intent); //设置 返回标号 ,这里是2;回传的是intent
finish(); //销毁当前页面
}
});
1.startActivityForResult(intent,requestCode);有返回值
第一个参数是Intent对象
第二个参数是请求的一个标识,即请求标号
2.通过startActivityForResult跳转,接收返回数据的方法
onActivityResult(int requestCode,int resultCode,Intentdata)
第一个参数是请求的标识
第二个参数是第二个页面返回的标识
第三个参数是第二个页面回传的数据
3.setResult(resultCode,data)
回传到第一个页面实际上是一个Intent对象
Intent data=new Intent();
data.putExtra("data",content);
setResut(2,data);
finish();//结束当前页面
第3种方法 单独方法
1.Button中创建android:onClick="sendmessage" sendmessage方法名
//MAIN_acitivity创建这个同名独立方法 响应Button的Click的事件
public void sendmessage(View view){
//新建Intent
Intent intent = new Intent(this,demo.class);
EditText ed = (EditText)findViewById(R.id.editText);
String message = ed.getText().toString();
//将要传输的数据放入itent 用itent。putExtra(,)方法
intent.putExtra(EXTA_MESSAGE,message);
//开始传输
startActivity(intent);
}
2.在第二个Activity中,oncreate设置如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获取intent
Intent intent = getIntent(); //获取intent 对应key的值
String message = intent.getStringExtra(MainActivity.EXTA_MESSAGE); //在其他view中显示
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
//绑定显示 可以是单个view也可以是xml
setContentView(textView); //最好放在第二行 super()函数的后面 不然会有很多意外的。
}
第4种方法 <intent-filter>根据标签找
1.在manifest中设置标签
<intent-filter>
<action android:name="aaa.bbb" /> //标签名
<category android:name="android.intent.category.DEFAULT" /> //格式
</intent-filter>
2.在Onclick事件中找
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("aaa.bbb");
intent.addCategory("android.intent.category.DEFAULT" );
startActivity(intent);
}
});
Activity的跳转及返回值 的四种方法的更多相关文章
- Activity的跳转及返回值,activity的生命周期
Activity生命周期 从创建到销毁的生命周期: onCreate()→onStart()→onResume()→onPouse()→onStop()→onDestroy() 从起动到后台再到前台: ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- C语言中函数返回字符串的四种方法
在讨论着四种方法之前,首先要对函数有一个简单的认识,无论是在形实结合时,还是在return语句返回时,都有一个拷贝的过程.你传进来的参数是个值,自然函数在工作之前要把这个值拷贝一份供自己使用,你传进来 ...
- html5 获取和设置data-*属性值的四种方法讲解
1.获取id的对象 2.需要获取的就是data-id 和 dtat-vice-id的值 一:getAttribute()方法 const getId = document.getElementById ...
- 交换A与B值的四种方法
在网上看到了这样一道面试题,"int A=5,int B=2,怎样交换A与B的值",或许这是一道简单到不能再简单的题,但能作为一道面试题,肯定有其独特之处 大多数人会通过定义第三个 ...
- vue组件之间值传递四种方法汇总
1.父组件获取子组件的数据和方法 $refs 子组件: <template> <div class="header"> <h3>{{ zz }} ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- Mockito 如何 mock 返回值为 void 的方法
转载:https://unmi.cc/mockito-how-to-mock-void-method/#more-7748 最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 vo ...
随机推荐
- React Native pod install报错 `Yoga (= 0.44.3.React)` required by `React/Core (0.44.3)`
使用pod安装,可能会因为Podfile的路径指向错误或者没有路径指向因为报错. 报错截图如下: 这是因为在指定的路径没有寻找到相应的组件.此时就需要修改podfile文件中的路径,由于上方提示没有 ...
- Python input 和 raw_input的区别
转载[http://www.pythonclub.org/python-basic/input] 使用input 和 raw_input 都可以读取控制台的输入,但是input和raw_input在处 ...
- 【Zookeeper】利用zookeeper搭建Hdoop HA高可用
HA概述 所谓HA(high available),即高可用(7*24小时不中断服务). 实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA. ...
- 【图像处理】FFmpeg解码H264及swscale缩放详解
http://blog.csdn.net/gubenpeiyuan/article/details/19548019 主题 FFmpeg 本文概要: 本文介绍著名开源音视频编解码库ffmpeg如何 ...
- 深入理解C语言-函数指针
函数指针在C++中有着重要的应用,函数的函数名其本质就是代表一个地址,这个地址叫做函数入口,得到这个地址就可以对这个函数进行各种操作. 函数类型基础 函数三要素: 名称.参数.返回值 C语言中的函数有 ...
- Python处理字符串和列表元组的小技巧
变量值互换 a = 1 b = 100 # 变量值互换 a, b = b, a print('a:', a) print('b:', b) 输出结果: a: 100 b: 1 多个变量赋值 a, b, ...
- C语言Ⅰ博客作业10
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10097 我在这个课程的 ...
- oracle报:ORA-01034和ORA-27101的解决办法
出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正 ...
- Linux系列之putty远程登录
在工作中,我们通常都是通过远程操作Linux服务器的,因此必须熟悉一些远程登录的软件,在此使用的是putty,在Windows上安装putty软件,通过该软件访问Linux主机. 1.远程登录步骤 1 ...
- python病毒
介绍 今天碰到一个有趣的python病毒,在这里https://github.com/cranklin/Python-Virus/blob/master/pythonvirus.py#L37 源码 分 ...