首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从facebook Android成功登录时切换活动

从facebook Android成功登录时切换活动
EN

Stack Overflow用户
提问于 2017-03-21 13:33:01
回答 2查看 58关注 0票数 1

我正在尝试从facebook登录。它是成功的,但当我尝试切换活动时,它并没有发生。它只显示带有注销选项的按钮。

下面是我的代码

代码语言:javascript
复制
    fbLogin=(LoginButton)findViewById(R.id.login_button);
    fbLogin.setReadPermissions(Arrays.asList("email"));
    fbLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            AccessToken accessToken = loginResult.getAccessToken();

            System.out.println("  accesstoken=  " + accessToken);
            Profile profile = Profile.getCurrentProfile();

            GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {
                            Log.v("LoginActivity", response.toString());

                            JSONObject json = response.getJSONObject();
                            try {
                                email1 = json.getString("email");

                                Toast.makeText(Login_Activity.this, "email is" + email1, Toast.LENGTH_SHORT).show();
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    });

            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,name,email");
            request.setParameters(parameters);
            request.executeAsync();


            displayMessage(profile);
        }

        @Override
        public void onCancel() {
            Toast.makeText(Login_Activity.this, "Login Canceled", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(FacebookException e) {
            Toast.makeText(Login_Activity.this, "Cannot connect.. Facebook error!!", Toast.LENGTH_SHORT).show();
        }
    });

下面是切换活动的函数

代码语言:javascript
复制
private void displayMessage(Profile profile){
    if(profile != null) {

        mail.setText(email1);
        session.createUserLoginSession(true, "FB");
        FGname=profile.getName();
        FGimage=String.valueOf(profile.getProfilePictureUri(100, 100));
        FGemail= email1;
        gv.setEmail(email1);

        Toast.makeText(Login_Activity.this, "display profile executed", Toast.LENGTH_SHORT).show();
        new AsynDataClassFbGoogleLogin().execute();

    }
    else
    {

    }
}

此外,当我再次启动应用程序时,登录已成功完成。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-21 13:51:24

您需要使用Intent来切换活动:

代码语言:javascript
复制
 private void displayMessage(Profile profile){
if(profile != null) {

    mail.setText(email1);
    session.createUserLoginSession(true, "FB");
    FGname=profile.getName();
    FGimage=String.valueOf(profile.getProfilePictureUri(100, 100));
    FGemail= email1;
    gv.setEmail(email1);

    Toast.makeText(Login_Activity.this, "display profile executed", Toast.LENGTH_SHORT).show();
    new AsynDataClassFbGoogleLogin().execute();

  //This code is what switches activities
  Intent i = new Intent(this, NewActivity.class);
  startActivity(i);
}
else
{

}

}

您还需要确保将新活动添加到清单中:

代码语言:javascript
复制
<activity
            android:name=".NewActivity"
            android:theme="@style/AppTheme.NoActionBar">


        </activity>

您可以在此处阅读有关活动的信息:https://developer.android.com/guide/components/activities/index.html

票数 0
EN

Stack Overflow用户

发布于 2017-03-21 13:44:54

代码语言:javascript
复制
Just add an intent to switch to another activity in onCompleted callback as follows :


GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {
                            Log.v("LoginActivity", response.toString());

                            JSONObject json = response.getJSONObject();
                            try {
                                email1 = json.getString("email");

                                Toast.makeText(Login_Activity.this, "email is" + email1, Toast.LENGTH_SHORT).show();

                             // switch to another activity after successful login
                             Intent intent = new Intent(LoginActivity.this, AnotherActivity.class);
                             startActivity(intent);

                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42919110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档