繁体   English   中英

Android Studio中的自定义Facebook登录按钮

[英]Custom facebook login button in android studio

在我的Android应用中,我已经集成了Facebook登录,效果很好。 后来,我自定义了登录按钮,该按钮也可以正常工作。 当用户单击facebook登录按钮时,它可以成功使用户登录而没有任何问题。 但是问题是,当用户登录时,它没有显示下一个活动,而是显示了具有Facebook按钮的相同登录页面,并在Facebook登录按钮上显示了注销文本,然后转到下一个活动。 见下图: 在此处输入图片说明

这是自定义的Facebook登录按钮,效果很好。 登录后请参见下图: 在此处输入图片说明

它在按钮上显示注销文本,然后转到下一个活动。 我想直接进入下一个活动,而不是显示带有注销文本的登录按钮。 我该怎么做呢。? 任何帮助..!
这是我的代码如下:

xml代码:

<com.facebook.login.widget.LoginButton
        xmlns:fb="http://schemas.android.com/apk/res-auto"
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        fb:login_text=""
        android:layout_gravity="center"/>

MainActivity.java

loginButton = (LoginButton)findViewById(R.id.login_button);
        loginButton.setBackgroundResource(R.drawable.fb);
        loginButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
        loginButton.setCompoundDrawablePadding(0);
        loginButton.setPadding(0, 0, 0, 0);
        loginButton.setText("");
        loginButton.setReadPermissions(permissionNeeds);

loginButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>()
        {
            @Override
            public void onSuccess(LoginResult loginResult)
            {
                GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback()
                    {
                        @Override
                        public void onCompleted(JSONObject user, GraphResponse response)
                        {
                            if(user !=null)
                            {
                                String firstName = user.optString("first_name");
                                String lastName = user.optString("last_name");
                                String email = user.optString("email");

                                Intent i1 = new Intent(getApplicationContext(),FacebookData.class);
                                i1.putExtra("first",firstName);
                                i1.putExtra("last",lastName);
                                i1.putExtra("email",email);
                                startActivity(i1);
                            }
                        }
                    });
                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "id,first_name,last_name,email");
                    request.setParameters(parameters);
                    request.executeAsync();
                }

设置fb:logout_text=""将解决您的问题。

<com.facebook.login.widget.LoginButton
        xmlns:fb="http://schemas.android.com/apk/res-auto"
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        fb:login_text=""
        fb:logout_text=""
        android:layout_gravity="center"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM