0
点赞
收藏
分享

微信扫一扫

Android-Intent(Activity 跳转全解)


1.回顾 

   上篇学习了 安卓的 五大布局;

2.知识点- Intent

   (1)普通跳转  (startActivity)

   (2) 带参数跳转 (startActivity)

   (3) 带返回值 跳转 (startActivityForResult)

3.普通跳转

    3.1 正常写法:

Intent intent=new Intent(MainActivity.this,FristActivity.class);
startActivity(intent);

    

    3.2 一行写法:


startActivity(new Intent(MainActivity.this,FristActivity.class));






    3.3 声明上下文写法:

private Context context;




        在OnCreate里 赋值

context=MainActivity.this;




         后再Intent 里调用

startActivity(new Intent(context,FristActivity.class));






4.带参数跳转

   4.1 简单的参数


Intent intent=new Intent(MainActivity.this,FristActivity.class);
intent.putExtra("yuan","ming");
startActivity(intent);



   4.2 多个参数借助 Buddle

Intent intent=new Intent(MainActivity.this,FristActivity.class);
Bundle bundle=new Bundle();
bundle.putString("name","yuan");
bundle.putInt("age", 23);
intent.putExtra("data", bundle);
startActivity(intent);




   4.3 接收参数 

   在第二个 Activity 里,通过 Intent 接收参数值:

Intent intent=getIntent();
Bundle bundle= intent.getBundleExtra("data");
tv_frist.setText(bundle.getString("name")+" | "+bundle.getInt("age"));




5. 带返回值的跳转

  5.1 startActivityForResult 参数

     第一个参数是:intent 对象

     第二个参数是:requestCode 请求标示 int 类型


Intent intent=new Intent(MainActivity.this,FristActivity.class);

startActivityForResult(intent, 1);



  5.2 重写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);
}

}



   5.3 设置返回值

  在第二个Activity 中通过 setResult()方法实现 参数回传(参数 其实是封装在 Intent 对象里的 ):


setResult(resultCode, data);


   参数:

   第一个参数:resultCode 和 上面 上一个Activity 里中重写的OnActivityResult 中一样,作为标示,来自这个Activity

   第二个参数:是 封装数据的Intent 对象 ,刚刚好是重写的第三个参数

   比如:


Intent data=new Intent();
data.putExtra("data","原明卓");
setResult(2, data);
//结束当前页面
finish();













举报

相关推荐

0 条评论