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 ...
随机推荐
- 自动化运维:(3)写一个简单的Shell脚本(案例)
一.需求 1.test.sh 脚本执行时候需要添加参数才能执行 参数和功能详情如下: 参数 执行效果 start 启动中... stop 关闭中... restart 重启中... * 脚本帮助信息. ...
- mybatis 基于xml 配置的映射器
cache 给命名空间的缓存配置 cache-ref 其他命名空间缓存配置的引用 resultMap 描述如何从数据库结果集中来加载对象 <!--column不做限制,可以为任意表的字段,而p ...
- 使用mysqldump对mysql进行备份与恢复
说明: 主参考:https://blog.csdn.net/fanren224/article/details/79693860 mysql数据全量备份 1.开启二进制日志,备份指定数据库 cat & ...
- Kafka Connector无法启动的原因
如图:启动Connector的时候一直提示报错. 后面找了一下网上发现原因, 基本原因就是Kafka的lib包和插件包都添加到ClassPath里面了 而这两地方都有Kafka-Client的jar包 ...
- Spark2.0学习记录
Hadoop与Spark的关系: ------------------- Spark 与mapReduce的区别: mapReduce和spark的内存结构: ------------------- ...
- visio给任意图形进行填充
使用visio给图形填充颜色的条件:图形必须是封闭的!!! 但是很多人不明白:我明明画的图形是封闭的啊!可是无法填充颜色!这是因为,你画了一个看上去是封闭的图形,但是VISIO认为你画的不是封闭图形! ...
- superset采集流程
superset采集流程: 先从业务的bi从库oride-slave-bi(10.52.123.212)去拿数,然后计算(每10分钟由airflow调py代码),放到bi的库(BI业务-数据指标存储1 ...
- 2019icpc银川网络赛
外面吵得风生水起,我校平静地在打比赛,丝毫不知道这次比赛的题目就是把2018银川邀请赛的题照搬过来了QAQ,主办方真牛逼.. A Maximum(思维) 题意:维护一个栈,支持入栈和出栈操作,并计算每 ...
- shell 如何避免误删目录
1.变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行 ...
- Java的四层结构dto、dao、service、controller
首先,最底层的就是dto层,dto层就是所谓的model,dto中定义的是实体类,也就是.class文件,该文件中包含实体类的属性和对应属性的get.set方法:<bean> 其次,是da ...