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