zoukankan      html  css  js  c++  java
  • Activity的跳转及返回值,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 android:name=".demo_act"
                android:theme="@android:style/Theme.DeviceDefault.Dialog"样式效果 可不做
    
     
    
    Activity跳转
    
    Eg:
    
    Intent intent = new Intent(Second.this,first.class);
    
    startActivity(intent);----------------------------------------------------无返回值

    1. Intent:意图,协助完成Android各个组件之间的通讯
    2.
    ①startActivity(intent)
    ②startActivityForResult(intent,requestCode)//有返回值
    onActivityResult(int requestCode,int resultCode,Intent data)//接收返回值A页面
    setResult(resultCode,data)//设置返回值B页面
    1种方法

    ntent intent = new Intent(Second.this,first.class);

    startActivity(intent);----------------------------------------------------无返回值

    2种方法

     1 bt2.setOnClickListener(new View.OnClickListener() {
     2         @Override
     3         public void onClick(View v) {
     4             Intent intent = new Intent(first.this,Second.class);
     5             startActivityForResult(intent,1);
     6         }
     7     });
     8 
     9 
    10 @Override
    11 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    12     super.onActivityResult(requestCode, resultCode, data);
    13     if(requestCode == 1 && resultCode == 2){
    14         String a = data.getStringExtra("AAA");
    15         tv.setText(a);
    16     }
    17 ----------------------华丽丽de分界线-----------------------
    18 bt2.setOnClickListener(new View.OnClickListener() {
    19     @Override
    20     public void onClick(View v) {
    21         Intent intent = new Intent();             //回传intent不需要参数了
    22         String s= (String)tv.getText();
    23         intent.putExtra("AAA",s);        //给意图intent添加key、value
    24         setResult(2, intent);            //设置返回标号 ,这里是2;回传的是intent
    25 
    26         finish();                //销毁当前页面
    27     }
    28 });

    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();//结束当前页面

  • 相关阅读:
    超级小白使用pip安装第三方库的正确姿势
    selenium+python自动化测试--解决无法启动IE浏览器及报错问题
    microsoft edge浏览器安装驱动
    超详细MySQL安装及基本使用教程
    Navicat15最新版本破解 亲测可用!!!
    Ubuntu 16.04安装JMeter测试工具
    JMeter_Ubuntu上安装jmeter
    韩国vps推荐-kdatacenter
    全栈之js入门篇
    Web前端之CSS_day5
  • 原文地址:https://www.cnblogs.com/zmaibbs7/p/4808842.html
Copyright © 2011-2022 走看看