码迷,mamicode.com
首页 > 其他好文 > 详细

Activity的跳转及返回值 的四种方法

时间:2015-09-19 12:13:15      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

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的跳转及返回值 的四种方法

标签:

原文地址:http://www.cnblogs.com/zmaibbs7/p/4821112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!