как вызвать onActivityResult в не классе деятельности android - PullRequest
0 голосов
/ 10 апреля 2020

Я создал Фрагмент, и при нажатии на кнопку появляется всплывающее окно, похожее на диалоговое окно изменения вида. в этом представлении включите кнопку входа в Google. когда я подключаюсь к firebase и продолжаю реализацию после startActivityForResult , мне нужно переопределить метод onActivityResult. но соответствующий класс всплывающих окон расширяет другой класс Dialog и не может переопределить метод onActivityResult. при переопределении он показывает, что метод не переопределяет метод из его ошибки суперкласса . как решить это. и как реализовать мою регистрацию в firebase.

спасибо. Вот мой код

public class DialogGoogle extends Dialog  { private Activity activity; @BindView(R.id.btn_google)
LinearLayout btnGoogle; private GoogleSignInClient mGoogleSignInClient;
private FirebaseAuth mAuth;
private int RC_SIGN_IN = 1; public DialogGoogle(Activity a, boolean isTab, int width, int height) {
    super(a, R.style.DialogTheme);
    this.activity = a;
    this.isTab = isTab;
    this.windowWidth = width;
    this.windowHeight = height;} 

в методе onCreate

// Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    // Configure Google Sign In
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(this.activity.getString(R.string.default_web_client_id))
            .requestEmail()
            .build();

    mGoogleSignInClient = GoogleSignIn.getClient(this.activity,gso);

После того, как я создал некоторый метод

public void signInGoogle() {Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    startActivityForResult(signInIntent, RC_SIGN_IN);}

после startActivityForResult () мне нужно получить результат и я использовал onActivityResult (), но я не могу переопределить метод в этом классе DialogGoogle. я обычно запускаю метод signInGoogle () нажатием кнопки

1 Ответ

0 голосов
/ 10 апреля 2020

Вы запускаете фрагменты в действии, и там вы переопределяете метод onActivityResult , но сначала вы запускаете свою аутентификацию, как в документации:

List<AuthUI.IdpConfig> providers = Arrays.asList(
    new AuthUI.IdpConfig.EmailBuilder().build(),
    new AuthUI.IdpConfig.PhoneBuilder().build(),
    new AuthUI.IdpConfig.GoogleBuilder().build(),
    new AuthUI.IdpConfig.FacebookBuilder().build(),
    new AuthUI.IdpConfig.TwitterBuilder().build());
// Create and launch sign-in intent
startActivityForResult(
    AuthUI.getInstance()
            .createSignInIntentBuilder()
            .setAvailableProviders(providers)
            .build(),
    RC_SIGN_IN);

RC_SIGN_IN - поле stati c и это индикатор, который вы можете проверить, завершено ли действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...