在Android上获得完全定制的Facebook登录按钮

在Android上获得完全定制的Facebook登录按钮,android,facebook,Android,Facebook,对于我的应用程序,我希望我的facebook按钮完全可自定义。这意味着我不再使用com.facebook.login.widget.LoginButton,而是使用普通的android按钮。为了让它工作,我尝试了这个解决方案,获得了一个LoginManager.getInstance().logInWithReadPermissions(这个,Arrays.asList(“public\u profile”,“user\u friends”)但它会抛出一个错误,说明: 无法解析方法logInWi

对于我的应用程序,我希望我的facebook按钮完全可自定义。这意味着我不再使用
com.facebook.login.widget.LoginButton
,而是使用普通的android按钮。为了让它工作,我尝试了这个解决方案,获得了一个
LoginManager.getInstance().logInWithReadPermissions(这个,Arrays.asList(“public\u profile”,“user\u friends”)但它会抛出一个错误,说明:

无法解析方法logInWithReadPermissions(匿名 android.view.view.OnClickListener,java.util.List)

你能帮忙吗

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        FacebookSdk.sdkInitialize(this.getApplicationContext());

        callbackManager = CallbackManager.Factory.create();

        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.d("Success", "Login");

                    }

                    @Override
                    public void onCancel() {
                        Toast.makeText(MainActivity.this, "Login Cancel", Toast.LENGTH_LONG).show();
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Toast.makeText(MainActivity.this, exception.getMessage(), Toast.LENGTH_LONG).show();
                    }
                });

        setContentView(R.layout.activity_main);

        Button btn_fb_login = (Button)findViewById(R.id.btn_fb_login);

        btn_fb_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                  LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
            }
        });

    }

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    callbackManager.onActivityResult(requestCode, resultCode, data); 
}
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(this.getApplicationContext());
callbackManager=callbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
Log.d(“成功”、“登录”);
}
@凌驾
公开作废{
Toast.makeText(MainActivity.this,“登录取消”,Toast.LENGTH_LONG.show();
}
@凌驾
public void onError(facebook异常){
Toast.makeText(MainActivity.this,exception.getMessage(),Toast.LENGTH_LONG.show();
}
});
setContentView(R.layout.activity_main);
按钮btn\U fb\U登录=(按钮)findViewById(R.id.btn\U fb\U登录);
btn_fb_login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
LoginManager.getInstance().logInWithReadPermissions(这个,Arrays.asList(“public\u profile”,“user\u friends”);
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}

问题出在这一行:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
这里的“this”指向onclick侦听器。但它应该指向“活动”或“片段”

因此,将
替换为
您的活动名称。此