我试图找到一种方法如何在课堂上为我的函数添加回调。我在所有sdk中看到了这个方法。
基础示例其视图中的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 对于Question2我抱错了信息 我想添加prepareAsync登录。 在某些sdk中,它看起来像
MyClass.Login().prepareAsync();
答案 0 :(得分:1)
在类中创建一个侦听器接口,以便将数据发送到活动
public interface OnLoginListener {
void onLoginListener(boolean result);
}
在同一个类中添加一个方法,将侦听器注册到要发送数据的对象;
public void setOnLoginListener(OnLoginListener listener) {
mListener = listener;
}
当您必须通过侦听器发送数据时,会将某些操作从您的类发送到活动或任何已注册的类
if(mListener!=null){
mListener.onLoginListener(YOUR BOOLEAN RESULT);
}
然后在您的activity类中创建一个侦听器类的对象,并像这样调用该方法。
SampleClass sampleClass = new SampleClass();
sampleClass.setOnLoginListener(new SampleClass.OnLoginListener() {
@Override
public void onLoginListener(boolean result) {
}
});
答案 1 :(得分:0)
试试这个。
<强> MyClass的强>
public class MyClass {
OnLoginListener mOnLoginListener;
public void callAsync() {
}
public interface OnLoginListener {
void onLoginListener(boolean result);
}
public void Login(OnLoginListener mOnLoginListener) {
this.mOnLoginListener = mOnLoginListener;
}
}
并在活动或片段中调用它。
MyClass myClass = new MyClass();
myClass.callAsync();
myClass.Login(new MyClass.OnLoginListener() {
@Override
public void onLoginListener(boolean result) {
// do something here
}
});
答案 2 :(得分:0)
使用
public interface OnLoginListener {
void onLoginListener(boolean result);
}
MyClass {
public static void Login(OnLoginListener listener) {
// use the listener here
}
}