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设置首启动页面

  1. 在原来<activity 。。。/>下加入新的

  2. 样式效果 可不做

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的跳转及返回值 的四种方法的更多相关文章

  1. Activity的跳转及返回值,activity的生命周期

    Activity生命周期 从创建到销毁的生命周期: onCreate()→onStart()→onResume()→onPouse()→onStop()→onDestroy() 从起动到后台再到前台: ...

  2. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  3. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  4. C语言中函数返回字符串的四种方法

    在讨论着四种方法之前,首先要对函数有一个简单的认识,无论是在形实结合时,还是在return语句返回时,都有一个拷贝的过程.你传进来的参数是个值,自然函数在工作之前要把这个值拷贝一份供自己使用,你传进来 ...

  5. html5 获取和设置data-*属性值的四种方法讲解

    1.获取id的对象 2.需要获取的就是data-id 和 dtat-vice-id的值 一:getAttribute()方法 const getId = document.getElementById ...

  6. 交换A与B值的四种方法

    在网上看到了这样一道面试题,"int A=5,int B=2,怎样交换A与B的值",或许这是一道简单到不能再简单的题,但能作为一道面试题,肯定有其独特之处 大多数人会通过定义第三个 ...

  7. vue组件之间值传递四种方法汇总

    1.父组件获取子组件的数据和方法 $refs 子组件: <template> <div class="header"> <h3>{{ zz }} ...

  8. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  9. Mockito 如何 mock 返回值为 void 的方法

    转载:https://unmi.cc/mockito-how-to-mock-void-method/#more-7748 最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 vo ...

随机推荐

  1. 代码托管至Github

    昨天突然之间觉得作为一个iOS程序员,没有在github上提交过自己的代码真是一大遗憾,不管是自己写的优秀的代码还是刚开始学习,用来学习练手的项目.然后我就很想要学习怎么往github上提交代码,很不 ...

  2. linux系统目录权限实践及结论

    总结测试结论:Linux目录的读.写.执行权限说明:

  3. PAT A1009 Product of Polynomials(25)

    课本AC代码 #include <cstdio> struct Poly { int exp;//指数 double cof; } poly[1001];//第一个多项式 double a ...

  4. pip安装源

    目录 介绍 永久配置安装源 Windows MacOS.Linux 配置文件内容 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:htt ...

  5. 【数位DP】恨7不成妻

    [数位DP]恨7不成妻 时间限制: 1 Sec  内存限制: 128 MB提交: 8  解决: 4[提交] [状态] [命题人:admin] 题目描述 单身!依然单身! 吉哥依然单身!DS级码农吉哥依 ...

  6. Java String类和StringBuffer类

    1.String类 用于字符串操作,本质是字符数组char[ ]. String对象的值是不可变的,即当你修改一个String对象的类容,JVM不会改变原来的对象,而是生成一个新String对象. 2 ...

  7. C#解决界面闪烁

    添加缓冲: private void SetDoubleBuffer() { base.SetStyle( ControlStyles.OptimizedDoubleBuffer | ControlS ...

  8. lunix部署其前端项目常见报错

    1.npm install 报权限错误,如: 解决办法: 添加--unsafe-perm 参数,如 #npm install --registry=https://registry.npm.taoba ...

  9. 豆瓣网post 爬取带验证码

    # -*- coding: utf- -*- import scrapy import requests from ..bao.jiema import get_number fromdata = { ...

  10. element-ui 表格可编辑添加删除

    <template> <div id="Cold_all"> <div class="Cold_Left"> <el- ...