android中Activity之间的跳转

1.使用Intent进行Activity之间的切换(Intent 是Activity之间的信使,两个Activity间的跳转,数据的传输都是通过Intent来实现)
在两个Activity: A——>B跳转
在Activity中使用Intent进行跳转
Intent intent= new Intent();
intent.setClass(A.this,B.class); 或者使用 intent.setClass(getApplicationContext(),B.class);
startActivity(intent);
当然,在实现两个Activity之间跳转之前,记得在AndroidManifest.xml 程序清单文件中,注册A,B Activity
2.两个Activity之间带有返回值的跳转
先是A——>B传输数据
在A中:
Intent intent=new intent(A.this, B.class);
intent.putExtras("name","wqe”); //在Intent中加入键值对数据。键:名, 值:wqe
startActivity(intent);
在B中
Bundle extras=getIntent().getExtras(); // A中通过一个Intent对象传值给B,B中要获取A传过来的值就得先获取用于在A,B间传值的Intent 对象
if(extras!=null)
{
String data=extras.getString("name");
}
3.B-------->A传输数据
这个过程是:A--->B(A跳转到B),B----->A(B传值给A),A获取B传过来的值
在A中startActivityForResult(intent,REQUEST_CODE) ,启动Intent对象跳转到B,当B运行结束时,覆写onActivityResult()回调函数,接受B中传回的数据;在B中要传数据给A,实现了setResult(RESULT_CODE,mIntent),传值给A
在A中:
final static int REQUEST_CODE=0;
Intent intent=new Intent(A.this,B.class);
startActivityForResult(intent,REQUEST_CODE); //A启动Intent对象跳转到B,并从B中获取B传回来的值,REQUEST_CODE只是个int类型的请求标记,值可以随便设
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
.......
Bundle extras=data.getExtras() ;
.........
}
//onActivityResult() 方法是B运行结束以后,也就是B传值给A以后的回调函数,它的参数 Intent data就是B传值给A使用的Intent对象
使用这个对象就可以接受B向A传过来的数据
在B中:
B需要填充数据传给A
Bundle bundle=new Bundle();
bundle.putString("名1","值1");
Intent mInten=new Intent(); //这里B中建立一个Intent对象mIntent,用于向A传输数据
mIntent.putExtras(bundle);
setResult(RESULT_OK,mIntent);
finish(); //B结束时,才会回调A中的onActivityResult(int requestCode,int resultCode,Intent data)方法,所以不要忘了最后加finish()
两个Activity之间跳转,之前我一直困惑,为什么从A--->B Intent对象要初始化跳转的源和目的即: Intent intent=new Intent(A.this,B.class);
而在B----->A传数值的时候Intent 对象不用设置源和目的即:Intent intent=new Intent(); 原来使用了堆栈。
?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值