Activity回传处理结果的方法

发表于 2020-06-29 17:32:52
阅读 39

介绍

介绍

今天跟着福哥来学习一下在 app 程序里面从一个 activity 里回传处理结果给前一个 activity 的方法

教程

准备

准备两个 Activity,一个是 PageA,一个是 PageB

使用 startActivityForResult

重载 onActivityResult 方法

在 PageA 里重载 onActivityResult 方法,用来处理接收到的处理结果

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == RESULT_OK){
        if(requestCode == 1){

        }
    }
}

打开 Page B

在 PageA 里启动 PageB

Intent intent = new Intent();

intent.setClass(this, PageB.class);
startActivityForResult(intent, 1);

使用 setResult

使用 setResult 回传处理结果

在 PageB 里调用 setResult 回传处理结果,并且 finish 自己

Intent intent = new Intent();

setResult(RESULT_OK, intent);
finish();

总结

  • 在父页面通过 startActivityForResult 打开子页面,并携带 requestCode

  • 在子页面通过 setResult 回传 resultCode

  • 在父页面通过 onActivityResult 方法处理 requestCode 和 resultCode