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. nginx反向代理cookie相关

    http://blog.csdn.net/xiansky2015/article/details/51674997 http://www.jianshu.com/p/aeed2a56a3eb

  2. CTF中对web服务器各种提权姿势

    在我们拿下服务器web服务往往只是低权限用户,对于内网渗透,我们往往需要root权限,Linux系统提权包括使用溢出漏洞已及利用系统配置文件. 提权前提: 1.拿到低权限shell 2.被入侵机器上有 ...

  3. 【图像处理】H.264简介

    H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2视频压缩标准发布以后的最新.最有前途的视频压缩标准.H.264是由ITU-T和ISO/IEC的联合开发组共同开发的最新国际视频编 ...

  4. TP5 isEmpty() 判空方法 所用场景

    1, { }类型 { "id": 1, "name": "首页置顶", "description": "首页轮 ...

  5. zping ping包工具20180524.exe测试版

          由于经常遇到需要长时间监测网络延迟的情况,pingplotter工具虽好但是要收费.于是我决定自己写个ping工具名字暂定zping.短期目标输出带时间信息的txt或Excel日志文件.便 ...

  6. 小记--------spark的Master主备切换机制原理分析及源码分析

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABfEAAAJwCAYAAAAp7ysfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw

  7. Oracle解决空表不导出

    Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows ...

  8. 倍增-RMQ问题Sparse-Table算法

       提示 code: #include<bits/stdc++.h> #define ll long long #define inf 0x7fffffff using namespac ...

  9. springboot打包的jar项目,不需要安装jdk环境启动

    因为服务器上是JDK7,而springboot至少用JDK8才行,但是又因为是很老的项目,不是很清楚能不能换JDK8,有风险,因此选择以前项目用JDK7,而新的springboot用JDK8.步骤一: ...

  10. Codeforces 1237F. Balanced Domino Placements

    传送门 很妙的题 首先先考虑一个简化的问题,现在有一行格子让你填 你要么填一格 要么填两格 有的格子不让你填 问你填了 $a$ 个一格和填了 $b$ 个两格有多少种方案 那么显然先只考虑放两格的方案, ...