Android开发10——Activity的跳转与传值
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。 intent可以激活Activity,服务,广播三类组件。本博文讲的是显示意图激活Activity组件。所谓显示意图就是在activity的激活时,显示指出了需要激活的activity的名字。 一、Activity跳转 方法一 Intent intent = new Intent(A.this, B.class); startActivity(intent); 方法二 Intent intent = new Intent(); intent.setClass(A.this, B.class); startActivity(intent); 实现从A跳转到B(A、B均继承自Activity) 二、传递数据 Activity A 传递数据 方法一 Intent intent = new Intent(); intent.setClass(A.this, B.class); intent.putExtra("name", "xy"); intent.putExtra("age", 22); startActivity(intent); 方法二 Intent intent = new Intent(A.this, B.class); Bundle bundle = new Bundle(); bundle.putString("name", "xy"); bundle.putInt("age", 22); intent.putExtras(bundle); startActivity(intent); Activity B 接收数据 // 获取参数1 Intent intent = this.getIntent(); String name = intent.getStringExtra("name"); int age = intent.getIntExtra("age", 22);// 缺省值为22 // 获取参数2 Bundle bundle = intent.getExtras(); String name2 = bundle.getString("name"); int age2 = bundle.getInt("age", 22); 两种获取参数方式均可,并不是和传参1,2方法一一对应 三、Activity返回值 跳转后前一个Activity已经被destroy了。如若要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下 1.从A页面跳转到B页面时不可使用startActivity()方法,而要使用startActivityForResult()方法 2.在A页面的Activity中,需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法 Activity A //有返回值的Activity publicvoidopenNewActivity2(Viewv) { Intentintent=newIntent(); intent.setClass(this.getApplicationContext(),OtherActivity2.class); intent.putExtra("name","xy"); intent.putExtra("age",20); startActivityForResult(intent,1); } @Override protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata) { //requestCode用于区分业务 //resultCode用于区分某种业务的执行情况 if(1==requestCode&&RESULT_OK==resultCode) { Stringresult=data.getStringExtra("result"); Toast.makeText(this.getBaseContext(),result,Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this.getBaseContext(),"无返回值",Toast.LENGTH_SHORT).show(); } } Activity B publicvoidclose(Viewv) { Intentintent=newIntent(); intent.putExtra("result","返回值"); this.setResult(RESULT_OK,intent);//设置结果数据 this.finish();//关闭Activity } 四、总结 以上采用的意图intent均是显示意图。 参考地址:http://www.cnblogs.com/feng88724/archive/2011/02/10/1961225.html 本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1081317如需转载请自行联系原作者 woshixuye111