gpt4 book ai didi

java - 如何向类中的函数添加回调

转载 作者:行者123 更新时间:2023-12-02 12:13:51 25 4
gpt4 key购买 nike

我试图找到一种方法来向我的类中的函数添加回调。我在所有的sdk中都看到了这个方法。

View 中的 onClickListener 基本示例

myBtn.setOnClickListener(new View.OnClickListener(--blabla method --));

任何人都可以解释我或给我一些好的信息,我可以在其中阅读有关这种方式的信息吗?

例如我想做一些类似的事情:我在类里面有登录功能

MyClass

MyClass {
public static void Login() {

}

我有类似这样的听众:

public interface OnLoginListener {
void onLoginListener(boolean result);
}

在我调用的代码中的某个地方

MyClass.Login();

但是我如何像这样调用这个函数:

MyClass.Login(new OnLoginListener(--blabla--));

这是问题 1还有问题2 一切都一样,但我可以添加类似 asyncTask 的东西

MyClass.Login().callAsync();

如何在代码中做到这一点?)我知道它一定是基本的。但我就是不明白要找到什么。请解释我或给我一些信息:)

UPD 抱歉,问题2我输入了错误的信息我想添加prepareAsync来登录。在某些 sdk 中,它看起来像

MyClass.Login().prepareAsync();

最佳答案

在要将数据发送到 Activity 的类中创建一个监听器接口(interface)

public interface OnLoginListener {
void onLoginListener(boolean result);
}

在同一个类中添加一个方法,向要发送数据的对象注册监听器;

public void setOnLoginListener(OnLoginListener listener) {
mListener = listener;
}

当您必须通过某些操作的监听器发送数据时,将数据从您的类发送到 Activity 或任何注册的类,如下所示

if(mListener!=null){
mListener.onLoginListener(YOUR BOOLEAN RESULT);
}

然后在您的 Activity 类中创建监听器类的对象并调用如下方法。

SampleClass sampleClass = new SampleClass();
sampleClass.setOnLoginListener(new SampleClass.OnLoginListener() {
@Override
public void onLoginListener(boolean result) {

}
});

关于java - 如何向类中的函数添加回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46338938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com