(1)普通跳转 (startActivity)
方法1 和2 和3:
1. intent=new Intent(MainActivity.this,FristActivity.class);startActivity(intent); 2. startActivity(new Intent(MainActivity.this,FristActivity.class));
3.//声明上下文写法: private Context context; //在OnCreate里 赋值 context=MainActivity.this; // 然后再Intent 里调用 startActivity(new Intent(context,FristActivity.class));
(2) 带参数跳转 (startActivity)//简单的带参数 Intent intent=new Intent(MainActivity.this,FristActivity.class); intent.putExtra("key",value); startActivity(intent);
//多个参数借助 Buddle Intent intent=new Intent(MainActivity.this,FristActivity.class); Bundle bundle=new Bundle(); bundle.putString("name","grain"); bundle.putInt("age", 23); intent.putExtra("data", bundle); startActivity(intent);
//接收参数 Intent intent=getIntent(); Bundle bundle= intent.getBundleExtra("data"); tv_frist.setText(bundle.getString("name")+" | "+bundle.getInt("age"));
(3) 带返回值 跳转 (startActivityForResult)//第一个参数是:intent 对象 //第二个参数是:requestCode 请求标示 int 类型 Intent intent=new Intent(MainActivity.this,FristActivity.class); startActivityForResult(intent, 1);
重写onActivityResult方法/* 在要执行跳转的Activity ,重写 onActivityResult 方法;参数为: 会发现 这里也有 requestCode 和 发生跳转时设置的 requestCode 标示; * startActivityForResult 跳转 有返回值 ,重写onActivityResult(non-Javadoc) * 第一个参数:requestCode 请求标识 * 第二个参数:resultCode 第二个页面返回的标识 * 第三个参数:data 返回的数据 * @see android.app.Activity#onActivityResult(int, int, android.content.Intent) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==1&&resultCode==2){ String text=data.getStringExtra("data"); show(text); tv_mian.setText(text); } }
//在第二个Activity 中通过 setResult()方法实现 参数回传(参数 其实是封装在 Intent 对象里的)setResult(resultCode, data);