Я пытаюсь интегрировать функцию входа в Google для своего приложения. В основном работает нормально, и я могу войти в систему. Однако, когда пользователь вошел в систему, видимость кнопок входа должна быть ложной, а затем должен стать видимым LinearLayout, который включает в себя два текстовых представления и кнопку выхода из системы.
Вот кодосновной деятельности макета, которая имеет все текстовые представления, кнопки и т. д.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/prof_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="50dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/Prof_Pic"
android:layout_width="90dp"
android:layout_height="wrap_content"
tools:srcCompat="@tools:sample/avatars" />
<LinearLayout
android:layout_width="255dp"
android:layout_height="wrap_content"
android:layout_marginLeft="28dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/Name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Display name here"
android:textSize="18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/Email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="Display email here"
android:textSize="12dp"
android:textStyle="bold" />
<Button
android:id="@+id/SignOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Logout"
tools:layout_editor_absoluteX="159dp"
tools:layout_editor_absoluteY="506dp" />
</LinearLayout>
</LinearLayout>
<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"/>
</LinearLayout>
Вот файл основной активности со всем кодом
private LinearLayout prof_section;
private LinearLayout LsignIn;
private Button SignOut;
private SignInButton SignIn;
private TextView Name,Email;
private ImageView Prof_Pic;
private GoogleApiClient GoogleApiClient;
private static final int REQ_CODE = 9001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setting variables as correct object
prof_section = (LinearLayout)findViewById(R.id.prof_section);
SignOut = (Button)findViewById(R.id.SignOut);
SignIn = (SignInButton)findViewById(R.id.sign_in_button);
Name = (TextView)findViewById(R.id.Name);
Email = (TextView)findViewById(R.id.Email);
Prof_Pic = (ImageView)findViewById(R.id.Prof_Pic);
//register buttons for onclick listener
SignIn.setOnClickListener(this);
SignOut.setOnClickListener(this);
//setting linearlayout and button to visible/invisible
prof_section.setVisibility(View.GONE);
SignIn.setVisibility(View.VISIBLE);
GoogleSignInOptions SignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail ().build();
GoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this,this).addApi(Auth.GOOGLE_ SIGN_IN_API,SignInOptions).build();
}
protected void onStart() {
super.onStart();
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.sign_in_button:
SignIn();
break;
case R.id.SignOut:
SignOut();
break;
}
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
private void SignIn() {
Intent intent = Auth.GoogleSignInApi.getSignInIntent(GoogleApiClient);
startActivityForResult(intent,REQ_CODE);
}
private void SignOut() {
Auth.GoogleSignInApi.signOut(GoogleApiClient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
UpdateUI(false);
}
});
}
private void handleResult(GoogleSignInResult result) {
if(result.isSuccess())
{
GoogleSignInAccount account = result.getSignInAccount();
String name = account.getDisplayName();
String email = account.getEmail();
String img_url = account.getPhotoUrl().toString();
Name.setText(name);
Email.setText(email);
//Glide.vith(this).load(img_url).into(Prof_Pic);
UpdateUI(true);
}
else
{
UpdateUI(false);
}
}
private void UpdateUI(boolean isLogin) {
if(isLogin)
{
prof_section.setVisibility(View.VISIBLE);
SignIn.setVisibility(View.GONE);
}
else
{
prof_section.setVisibility(View.GONE);
SignIn.setVisibility(View.VISIBLE);
}
У меня нет сообщений об ошибках при запускеприложение