繁体   English   中英

如何从Facebook登录按钮获取值并将其传递给另一个活动

[英]How to get values from a facebook login button and pass it to another activity

public class LoginActivity extends AppCompatActivity {
LoginButton fbloginButton;
CallbackManager callbackManager;
private static final String TAG = "LoginActivity";
private static final int REQUEST_SIGNUP = 0;

@BindView(R.id.input_email) EditText _emailText;
@BindView(R.id.input_password) EditText _passwordText;
@BindView(R.id.btn_login) Button _loginButton;
@BindView(R.id.link_signup) TextView _signupLink;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    ButterKnife.bind(this);
    fbloginButton=(LoginButton)findViewById(R.id.login_button);
    fbloginButton.setReadPermissions("email","public_profile");
    callbackManager = CallbackManager.Factory.create();
    fbloginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            String userid=loginResult.getAccessToken().getUserId();
            GraphRequest graphRequest=GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {

                    displayUserInfo(object);
                }
            });
            Bundle parameters=new Bundle();
            parameters.putString("fields","first_name,last_name,email");
            graphRequest.setParameters(parameters);
            graphRequest.executeAsync();


        }
        public void displayUserInfo(JSONObject object)
        {
            String first_name="",last_name="",email="";
            try {
                ***first_name=object.getString(first_name);
                ***last_name=object.getString(last_name);
                ***email=object.getString(email);
            } catch (JSONException e) {
                e.printStackTrace();
            }


        }

这是我的代码,即LoginActivity.java

我想获取指定的值***并将其传递给各个字段中的下一个活动。 下一个活动有五个字段,分别是名称,地址,电子邮件,手机号码和密码。 我想获取值的名字和姓氏,并将其传递给名称字段,并将电子邮件地址传递给电子邮件字段。

我是android开发的初学者。

您需要定义一个侦听器,该侦听器将开始下一个活动。 例如,您是否希望下一个活动从onComplete()或onSuccess()或其他地方开始? 在您要触发下一个活动的任何地方,将以下代码放在此处;

startActivity(new Intent(LoginActivity.this,   NextActivity.class)
                           .putExtra("firstName", first_name)
                           .putExtra("lastName",last_name)
                           .putExtra("email",email)
);

暂无
暂无

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

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