zoukankan      html  css  js  c++  java
  • 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设置首启动页面

    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);
    
                }
            });
    

      

  • 相关阅读:
    memcached +mysql+php 例子
    PHP利用memcache缓存技术提高响应速度
    实现QQ第三方登录教程(php)
    php如何解决多线程同时读写一个文件的问题
    php数组函数常见的那些
    PHP 5种方式获取文件后缀名
    函数与方程
    函数图像习题
    高中数学中需要重点关注的函数和图像
    特殊分段函数的图像画法
  • 原文地址:https://www.cnblogs.com/zmaibbs7/p/4821112.html
Copyright © 2011-2022 走看看