#java #android #android-studio
#java #Android #android-studio
Вопрос:
я хочу создать приложение типа swiggy. я интегрировал вход в систему gmail на своем экране входа в систему, и при успешном выполнении он меняется на активность панели мониторинга, но когда я нажимаю на вкладку учетной записи, он возвращается на экран панели мониторинга вместо активности учетной записи. пожалуйста, помогите……
если вам нужна какая-либо часть кода, просто прокомментируйте, и я обновлю
//login screen part
//check if already signed in using google
account = GoogleSignIn.getLastSignedInAccount(this);
if(account!=null) {
finish();
Intent intent = new Intent(this, DashboardActivity.class);
startActivity(intent);
return;
}
//onclicklistener added
//method
private void googleSignin() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
onActivity result(//params provided){
if(googleLogin){
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
googleLogin = false; //set to false so that it can be set true again if login is actually successful
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
}
}
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
// Signed in successfully, show authenticated UI.
sessionManager.setLogin(true);
googleLogin = true;
Intent intent = new Intent(this,DashboardActivity.class);
intent.putExtra("googleLogin", googleLogin);
startActivity(intent);
finish();
}
//Dashboard part
Intent i = new Intent(DashboardActivity.this ,MyAccountActivity.class);
i.putExtra("googleLogin", googleLogin);
startActivity(i);
//myaccount part
if(googleLogin){
GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(this);
if (acct != null) {
String personName = acct.getDisplayName();
//System.out.println(personName); working fine
account_name.setText(personName);
String personEmail = acct.getEmail();
//System.out.println(personEmail); fine
account_email.setText(personEmail);
account_mobile.setText(" 91 1234567890");
// System.out.println(googleLogin);
// System.out.println(fbLogin);
}
}
Комментарии:
1. Вы должны опубликовать код здесь, так как, как я обнаружил, это логическая ошибка. Если вам нужна помощь, вы должны поделиться блоком кода, в котором у вас возникла эта проблема.
2. в том-то и дело, что в logcat нет ошибки. приложение не выходит из строя или что-то в этом роде.
Ответ №1:
решена эта проблема. проблема заключалась в том, что gmail не смог предоставить данные учетной записи для использования, когда я попытался отобразить их в СВОЕЙ УЧЕТНОЙ записи, которую я интегрировал в свое приложение, поэтому он продолжал сбоить. код был правильным, поэтому он не выдавал никаких ошибок, я даже пытался его зарегистрировать. там он показывал правильные данные, но все равно не отображал результат в текстовых представлениях. итак, что я сделал, так это использовал общие настройки. каждый раз, когда пользователь входит в систему с помощью gmail, в них сохраняются данные, и я извлекаю их из СВОЕЙ УЧЕТНОЙ записи, и да, результаты отображаются правильно. дайте мне знать, если вам нужна дополнительная помощь.