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 ...
随机推荐
- python多进程——multiprocessing.Process
简介 multiprocessing是一个使用类似于threading模块的API支持生成进程的包.该multiprocessing软件包提供本地和远程并发.因此,该multiprocessing模块 ...
- LCTF (easy-100)
先安装跑一下,不知道为啥我这里模拟器打不开,传到手机上就可以.如下图. 一个输入框,一个按钮,随便输入提示no. 放入JEB反编译. 可以看到有6个Class.大体看一遍,b和e应该和解题无关,在类a ...
- Git提交本地项目文件到GitHub的详细操作
因最近在使用git命令提交代码到github的操作,网上找了下教程,记录下过程,便于查看 添加整个文件夹及内容 git add 文件夹/ 添加目录中所有某种类型的文件 git add *.文件类型 `
- 性能排查--CPU占用高
排查思路: 1.先找到占用CPU高的进程PID top命令 2.top -H -p <PID> 查看哪个占用CPU高的线程TID 3.jstack <PID> /ho ...
- 通过SublimeCodeIntel设置JavaScript自动补全
1.首先安装SublimeCodeIntel包. 进入sublime,通过Ctrl+Shift+P进入包管理,输入pci(首字母),选择Package Contrl:Intall Package,如图 ...
- Oracle- 数据库知识回顾
数据库知识回顾: sql语句的语法规范: sql语句不区分大小写,习惯上系统的保留字.关键字.函数名称大写,表名和列名小写 使用空格和换行分隔单词效果一样,一般情况下独立的整句不换行,不同的子句需要换 ...
- 这可能是最简单易懂的 ZooKeeper 笔记
分布式架构 CAP 与 BASE 理论 一致性协议 初识 Zookeeper Zookeeper 介绍 Zookeeper 工作机制 Zookeeper 特点 Zookeeper 数据结构 Zooke ...
- Hadoop集群搭建-04安装配置HDFS
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- 查看Oracle索引是否被使用或者有效
第一步: explain plan for select * from T_USER where OPEN_ID='12345'; 第二步: select * from table(dbms_xpla ...
- Jenkins+Github持续环境搭建
⒈前提要求 Jenkins与Github配合实现持续集成需要注意以下几点: 1.Jenkins需要部署在外网上,因为内网地址是无法访问Github的.这一点可以通过租用阿里云.腾讯云等云平台提供的云服 ...