gpt4 book ai didi

java - java中的匿名内部类及其语法

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

我对 Java 很陌生,我正在尝试编写一个 Android 应用程序并使用 facebook api。我正在看this page ,具体来说,这个

    LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}

@Override
public void onCancel() {
// App code
}

@Override
public void onError(FacebookException exception) {
// App code
}
});

这工作得很好,我只是想了解如何。我不理解方法中的方法,更具体地说,如果我想以不同的方式编写它,我将如何提取它?

我尝试创建另一个类

public class FaceBookCallbackLogin implements FacebookCallback<LoginResult> {



@Override
public void onSuccess(LoginResult loginResult) {
....
}

@Override
public void onCancel() {

}

并尝试从我的 MainActivity 启动登录

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
info = (TextView)findViewById(R.id.info);
loginButton = (LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions("email");

loginButton.registerCallback(callbackManager, new FaceBookCallbackLogin());
}

但是,这永远不会调用 FaceBookCallbackLogin 中的 onSuccess 方法,并且我无法显式调用它,因为我没有参数 LoginResult。

那么,我该如何编写这个以便我可以在不同的类中登录?在原始代码中, onSuccess - LoginResult - 的参数来自哪里?

最佳答案

从匿名内部类更改为单独类的方式看起来很好。

但是,在第一个示例中您已经这样做了:

LoginManager.getInstance().registerCallback

在第二个示例中,您已经这样做了:

loginButton.registerCallback

也许这就是问题所在..

关于java - java中的匿名内部类及其语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48273595/

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