码迷,mamicode.com
首页 > 移动开发 > 详细

Android使用Intent让不同Activity切换,并传递参数

时间:2015-02-26 13:08:49      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

基本用法:

显式

Intent intent=new Intent(Activity甲.this,Activity乙.class);

startActivity(intent);

  

传递参数

Intent intent=new Intent(Activity甲.this,Activity乙.class);
intent.putExtra("参数名","要传的价值,可以是任何类型");
startActivity(intent);

获取参数

在目标Activity中

Intent intent=getIntent();
String data=intent.getStringExtra("参数名");

 

进阶:

除了startActivity方法外,还可以使用startActivityForResult方法,感觉类似于观察者模式

startActivityForResult方法第一个参数还是intent实例,第二个参数为自定义的requestCode代码,定以后可以在Activity乙返回时(按按钮或Back键)作相对应的操作。

需重写Activity甲中的onActivityResult函数

 

在Activity甲中

Intent intent=new Intent(Activity甲.this,Activity.乙.class);
startActivityForResult(intent,1);

在Activity乙中通过按钮返回Activity甲

Button btnBack=(Button)findViewById(R.id.btnBack);

btnBack.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v){
  
        Intent intent=new Intent();
        setResult(RESULT_OK,intent);
        finish();        

    }

});

在Activity乙中通过返回按钮Back(机器上的)返回Activity甲

需重写onBackPressed函数

@Override
public void onBackPressed(){

    Intent intent=new Intent();
    intent.putExtra("参数名","值");
    setResult(RESULT_OK,intent);
    finish();

}

  

 

最后在Activity甲中重写onActivityResult函数

@Override
protected void on ActivityResult(int requestCode,int resultCode,Intent data){
    
    switch(requestCode){
        case 1:
            if(resultCode=RESULT_OK){
    
                String returnData=data.getStringExtra("参数名");

            }

    }


}

  

 

其中case 1就是在建立intent时所存放的第二个参数,为requestCode

 

finish

 

Android使用Intent让不同Activity切换,并传递参数

标签:

原文地址:http://www.cnblogs.com/gachal/p/4300940.html

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