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

标签 java android

我试图找到一种方法来向我的类中的函数添加回调。我在所有的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/

相关文章:

android - HTML 中的代码,用于通过 Phone gap 与其他应用程序交互共享内容,例如 ACTION_SEND

java - 我的代码中有一个第三方异步 block 。我怎么知道它什么时候结束?

Java : string. 替换(oldChar,newChar)忽略另一个命令

java - 如何在Java中将计算结果四舍五入到小数点后n位

java - 如何从spinner android中选择值然后插入到mysql?

android - 加速度计值表现得像倾斜仪?

android - java.lang.IllegalStateException : while calling a method from a fragment 错误

java - 将字符串转换为资源Uri,用于mp3播放

java - 如何测试到期条件?

java - Android AsyncTask 出现问题 - JavaMail