继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于Intent 中 startActivityforResult()方法

天涯尽头无女友
关注TA
已关注
手记 85
粉丝 9
获赞 42

个人理解,如有误解,恳指导

一.区别( 实现activity 跳转下一个界面主要有两种方法,startActivity()和startActivityforResult() )

 1.对于普通的activity A 把数据传入 activity B 界面 用startActivity(),并且无返回数据。

 2.startActivityforResult() 可以把 activity A 把数据传入 activity B,并且也可以把activity B中的数据返回activity A 处理。

二.实现

 1.我们先看方法系统提供的方法 public void startActivityForResult(Intent intent, int requestCode)方法。

  (1) intent 第一个参数是要打开的新activity

  (2) requestCode 第二参数为请求码,可以根据业务需求自己编号。

举例:startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1);

 2.在为了得到关闭新activity 返回的数据,要在向前面一个activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。

  (1) requestCode 请求码,即调用startActivityForResult()传递过去的值

  (2) resultCode 结果码,结果码用于标识返回数据来自哪个新Activity

  (3) data 当新Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用前面Activity 的onActivityResult()方法,把存放了返回数据的Intent作为第三个输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity返回的数据。

举例:

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     if(requestCode == 1 && resultCode == Activity.RESULT_OK){

             String result = data.getExtras().getString("result"); //得到新Activity关闭后的返回数据

            Log.i(TAG, result);

        } 

    }

原文链接:http://www.apkbus.com/blog-455907-60387.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP