在Facebook SDK中的两个不同的LoginButtons中注册相同的回调

时间:2016-05-04 00:43:55

标签: android facebook

我有两个按钮;每个人都有不同的布局,但他们做同样的事情,因为他们都是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*/
        }
    }
}

我想使用这个类来管理两个按钮,但我不认为解决方案是制作一个公共类... 有什么建议?

1 个答案:

答案 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());