如何解决如何在android studio应用程序中显示谷歌帐户信息
我正在用 java 在 android studio 中开发一个应用程序。目前我的应用程序有 3 个重要文件: 1.loggin.class:它是一个主登录窗口,用户可以通过谷歌注册到应用程序 2.main.class:包含一个导航抽屉,还允许您通过选择抽屉中的任何选项来更改片段。 3.perfil_user.class:这是一个包含用户配置文件视图的片段,应用程序在注册或点击谷歌按钮后将您重定向到该视图。 除了一个小细节,一切都完美无缺,当我按下谷歌按钮时,我希望捕获邮件、个人资料图片和用户名值,以便它们显示在用户个人资料视图中,不幸的是这不会发生,我会因为我是 android studio 的新手,所以希望看到你们中的一个可以帮助我的选项,我在下面留下我的预览:
main.class
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
DrawerLayout drawerLayout;
ActionBarDrawerToggle actionBarDrawerToggle;
Toolbar toolbar;
NavigationView navigationView;
//variables para cargar el fragment
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);//se pasa el toolbar
drawerLayout=findViewById(R.id.drawer);
navigationView=findViewById(R.id.navigationView);
navigationView.setNavigationItemSelectedListener(this);
actionBarDrawerToggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.open,R.string.close);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
actionBarDrawerToggle.syncState();
//cargar fragment principal
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
fragmentManager=getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.container,new perfil_user());
fragmentTransaction.commit();
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.user){
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
fragmentManager=getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container,new perfil_user());
fragmentTransaction.commit();
}
else if (item.getItemId() == R.id.exit){
finish();
}
//aquí van las otros fragment
drawerLayout.closeDrawer(GravityCompat.START);
return false;
}
}
登录.class
public class loggin extends AppCompatActivity {
//variables google
Button register;
SignInButton signInButton;
TextView recoveruser,recoverpassword;
GoogleSignInClient mGoogleSignInClient;
int RC_SIGN_IN=0;
//variables fb
CallbackManager callbackManager;
LoginButton loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loggin);
register=findViewById(R.id.buttonregister);
recoveruser=findViewById(R.id.recoveruser);
recoverpassword=findViewById(R.id.recoverpassword);
signInButton = findViewById(R.id.sign_in_button);
callbackManager= CallbackManager.Factory.create();
loginButton = findViewById(R.id.login_button);
signInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_in_button:
signIn();
break;
// ...
}
}
});
//configuración para google:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
mGoogleSignInClient = GoogleSignIn.getClient(this,gso);
}
private void signIn() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent,RC_SIGN_IN);
}
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == RC_SIGN_IN) {
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
}
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
Intent intent=new Intent(loggin.this,MainActivity.class);
startActivity(intent);
// Signed in successfully,show authenticated UI.
} catch (ApiException e) {
Log.w("error","signInResult:failed code=" + e.getStatusCode());
}
}
}
片段:
public class perfil_user extends Fragment {
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.perfil_user,container,false);
GoogleSignInClient mGoogleSignInClient;
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
mGoogleSignInClient = GoogleSignIn.getClient(getContext(),gso);
ImageView imageView=view.findViewById(R.id.image_user);
TextView nameuser=view.findViewById(R.id.NameUser);
TextView email=view.findViewById(R.id.setmail);
GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getContext());
if (acct != null) {
String personName = acct.getDisplayName();
String personEmail = acct.getEmail();
Uri personPhoto = acct.getPhotoUrl();
nameuser.setText(personName);
email.setText(personEmail);
}
return view;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。