【发布时间】:2017-09-27 01:01:45
【问题描述】:
大家好,我有这个作为 MainActivity:
public class LoginActivity extends AppCompatActivity {
public interface LoginListener {
public void onLoginSuccess();
}
public void onLoginSuccess() {
//logged in and do a few other things
}
}
这是我的第二个 Activity,我想在 MainActivity 中调用 onLoginSuccess() 方法,如您所见,我正在使用 Listener 执行此操作...
public class FingerprintHandler extends FingerprintManager.AuthenticationCallback {
private LoginActivity.LoginListener mListener;
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
if (mListener != null) {
mListener.onLoginSuccess();
}
else{
Toast.makeText((Activity)context, "Listener is 0", Toast.LENGTH_LONG).show();
}
}
}
我的问题是我每次尝试都会返回:“Listener is 0” from my Toast...所以怎么了?
【问题讨论】:
-
你在哪里设置
mListener?您应该将其设置为LoginActivity的实例。例如,从登录活动中,喜欢:new FingerprintHandler(this),该构造函数采用LoginListener。另外,单独定义LoginListener,使其为LoginActivity implements LoginListener。 -
抱歉,它应该是什么样子? :)
-
@Jameson 我也不能用 LoginActivity 实现 LoginListener...我在这个 Activity 中有其他东西..当我这样做时,我得到 86 个错误...
-
@Jameson 有没有办法在没有 LoginActivity 实现 LoginListener 的情况下做到这一点? :)
-
其实你的 LoginActivity 没有实现 LoginListener。您在 LoginActivity 中定义了接口 LoginListener。而不仅仅是创建一个与您的界面同名的方法。你为什么这样做?