ITPub博客

首页 > IT职业 > IT生活 > 关于Intent 中 startActivityforResult()

关于Intent 中 startActivityforResult()

IT生活 作者:skylar 时间:2021-09-09 10:05:30 0 删除 编辑

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

一.区别( 实现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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4648/viewspace-2816124/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-13

  • 博文量
    83
  • 访问量
    767