首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取非活动类的onActivityResult (Android)

获取非活动类的onActivityResult (Android)

在Android开发中,onActivityResult()方法用于接收其他活动返回的结果。通常情况下,我们在活动类中重写该方法来处理返回的结果。然而,有时候我们需要在非活动类中获取onActivityResult()的结果,这时可以通过以下步骤实现:

  1. 创建一个接口(Callback):在非活动类中创建一个接口,用于回调返回的结果。接口中定义一个方法,用于接收返回的结果。
代码语言:java
复制
public interface Callback {
    void onResult(int resultCode, Intent data);
}
  1. 在活动类中实现接口:在活动类中实现上述接口,并在onActivityResult()方法中调用接口的方法,将结果传递给非活动类。
代码语言:java
复制
public class MainActivity extends AppCompatActivity {
    private Callback callback;

    // ...

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (callback != null) {
            callback.onResult(resultCode, data);
        }
    }

    public void setCallback(Callback callback) {
        this.callback = callback;
    }
}
  1. 在非活动类中获取结果:在非活动类中实现Callback接口,并将其传递给活动类的实例。然后,在需要获取结果的地方调用接口的方法,即可获取到onActivityResult()的结果。
代码语言:java
复制
public class NonActivityClass implements Callback {
    private MainActivity activity;

    public NonActivityClass(MainActivity activity) {
        this.activity = activity;
        this.activity.setCallback(this);
    }

    @Override
    public void onResult(int resultCode, Intent data) {
        // 处理返回的结果
    }

    // 在需要获取结果的地方调用接口的方法
    public void getResult() {
        // 调用活动类的方法,触发onActivityResult()回调
        // 结果将通过onResult()方法返回
        activity.startActivityForResult(intent, requestCode);
    }
}

这样,通过回调接口的方式,非活动类就可以获取到onActivityResult()的结果了。

这种方法适用于需要在非活动类中处理返回结果的情况,例如在工具类、网络请求类等中获取onActivityResult()的结果。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券