startActivityForResult(intent, requestCode)用法

    技术2025-07-28  11

    依次打开Activity  A1--A2--A3--A4 这时候你如果想从第四个返回到第一Activity 的时候,就用到了startActivityForResult 这个方法了。

    startActivityForResult(intent, requestCode) 复制代码

    两个参数 一个是第一好的意图对象,另一个是请求代码。A1 的 intent 定义是

    Intent intent = new Intent(); intent.setClass(this,A2.class); 复制代码

    指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);A2 的 intent 定义是

    Intent intent = new Intent(); intent.setClass(this,A3.class); 复制代码

    指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);A3 的 intent 定义是

    Intent intent = new Intent(); intent.setClass(this,A4.class); 复制代码

    指定一个 int 作为 requestCode 比如 startActivityForResult(intent, 1);A4 添加一个返回按钮 点击的事件里写

    public void 点击事件{  //this.setResult(int resultCode)    this.setResult(10)  this.finish();} 复制代码

    这时候点击A4的返回按钮时候,先设置 resultCode 给上一个 A3 来判断,然后关闭A4关闭A4触发A3里面的方法,onActivityResult(int requestCode, int resultCode, Intent data) 在这个方法里面做判断就行了。前两个参数分别是 我们设置的 requestCode 和 resultCode

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // TODO Auto-generated method stub  super.onActivityResult(requestCode, resultCode, data);  if(requestCode == 1&& resultCode == 10){    this.setResult(10);    this.finish();  }} 复制代码

    此方法先匹配 requestCode 和 resultCode 然后设置 resultCode 在关闭A3,想同的道理关闭A2这样就返回A1了。

    最新回复(0)