Как получить информацию о пользователе, используя метод Google Sign In во фрагменте JAVA класса BottomNavigationView? - PullRequest
0 голосов
/ 30 июня 2019

Это мой класс фрагментов.Это часть BottomNavigationView:

package com.healthapp.instacare;

        import android.net.Uri;
        import android.os.Bundle;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.ImageView;
        import android.widget.TextView;

        import androidx.annotation.NonNull;
        import androidx.annotation.Nullable;
        import androidx.fragment.app.Fragment;

        import com.google.android.gms.auth.api.signin.GoogleSignIn;
        import com.google.android.gms.auth.api.signin.GoogleSignInAccount;

public class HomeFragment extends Fragment{
    GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getActivity());

    TextView name= (TextView)getView().findViewById(R.id.name);
    TextView surname= (TextView)getView().findViewById(R.id.surname);
    TextView id= (TextView)getView().findViewById(R.id.id);
    TextView email= (TextView)getView().findViewById(R.id.email);
    ImageView profimg = (ImageView)getView().findViewById(R.id.profimg);


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getinfo();
    }

    private void getinfo() {
        if (acct != null) {
            String personName = acct.getDisplayName();
            String personFamilyName = acct.getFamilyName();
            String personEmail = acct.getEmail();
            String personId = acct.getId();
            Uri personPhoto = acct.getPhotoUrl();

            name.setText(personName);
            surname.setText(personFamilyName);
            id.setText(personId);
            email.setText(personEmail);
            profimg.setImageURI(personPhoto);
        }
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_profile,container,false);
    }

}

Это метод, который Google предоставил, используя Документацию:

GoogleSignInAccount acct = 
GoogleSignIn.getLastSignedInAccount(getActivity());
if (acct != null) {
    String personName = acct.getDisplayName();
    String personGivenName = acct.getGivenName();
    String personFamilyName = acct.getFamilyName();
    String personEmail = acct.getEmail();
    String personId = acct.getId();
    Uri personPhoto = acct.getPhotoUrl();
} 

Как я могу реализовать его во фрагменте?Я новичок в кодировании Android Studio.

Я уже создал несколько TextViews и ImageViews в файле .xml для фрагмента, и я надеялся заменить эти тексты и URL-изображения на изображения из информации аккаунта Googleи отобразите его.

Я пробовал приведенный выше код, но, возможно, он зависает из-за исключения NullPointerException.

...