我有两个按钮;每个人都有不同的布局,但他们做同样的事情,因为他们都是Facebook SDK的LoginButton
。
我可以让同一个类在不同布局的两个不同按钮上处理相同的动作吗?
我不喜欢使用内部类,这就是为什么我创建了一个名为ButtonFacebook
的新私有类
loginFacebook.registerCallback(callbackManager, new ButtonFacebook ());
ButtonFacebook
类就是这个
private class ButtonFacebook implements FacebookCallback<LoginResult> {
@Override
public void onSuccess(LoginResult loginResult) {
/* CODE HERE */
}
@Override
public void onCancel() {
/* CODE HERE */
}
@Override
public void onError(FacebookException error) {
/* CODE HERE*/
}
private class graphData implements GraphRequest.GraphJSONObjectCallback {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
/*CODE HERE*/
}
}
}
我想使用这个类来管理两个按钮,但我不认为解决方案是制作一个公共类... 有什么建议?
答案 0 :(得分:1)
你说得对,你可以做到。只需创建一个public class
来实现FacebookCallback<LoginResult>
:
public class LoginListener implements FacebookCallback<LoginResult> {
@Override
public void onSuccess(LoginResult loginResult) {
// Handle onSuccess action
}
@Override
public void onCancel() {
// Handle onCancel action
}
@Override
public void onError(FacebookException error) {
// Handle errors
}
}
然后将该类设置为callback
中的LoginButton
:
CallbackManager callbackManager = CallbackManager.Factory.create();
yourLoginButton.registerCallback(callbackManager, new LoginListener());