我有以下facebook回调,但我想在单独的类(例如FacebookConnector)中注册,而不是在MainActivity函数(我想用于任何facebook API连接的类似方案)中注册:
facebookLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//do something
}
@Override
public void onCancel() {
System.err.println("Login cancel");
}
@Override
public void onError(FacebookException e) {
System.err.println("Error on login");
}
});
在主MainActivity函数中,我想创建一个处理程序,其中包含以下代码:
facebookConnector = new FacebookConnector();
if (facebookConnector.successfulLogin()) {
//do something
}
其中successfulLogin
方法将返回true或false。我怎样才能做到这一点?
答案 0 :(得分:1)
如果我是你,我会这样做:
在cherry-pick
我会说:
FacebookConnector
我还会加入public FacebookCallback<LoginResult> getFacebookCallBack() {
return new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
//Some code here
myActivity.successfulLogin();
}
@Override
public void onCancel() {
//Some code here
}
@Override
public void onError(FacebookException exception) {
//Some code here
}
};
}
的构造函数:
FacbookConnector
其中public void FacebookConnector(MainActivity myActivity){
callbackManager = CallbackManager.Factory.create();
FacebookCallback<LoginResult> mFacebookCallBack = getFacebookCallBack();
fbLoginButton.registerCallback(callbackManager, mFacebookCallBack);
this.myActivity = myActivity;
}
具有对FB登录按钮的引用。我还会在fbLoginButton
接下来,在FacebookConnector
中,我会说:
MainActivity
同样的事情可以通过使用CallBack-Listener机制来完成,尽管我没有看到这样的差异。 希望有所帮助。如果您需要任何清晰度,请告诉我。