Как создать подавляемый textView в пользовательской аутентификации FirebaseUI?

Я разрабатываю приложение, в котором есть страница регистрации и входа. Здесь я использую интерфейс Firebase. В MainActivity я хочу использовать ClickableSpan, который, если я нажму, перебросит пользователя на страницу входа. Но поскольку я использую пользовательский интерфейс Firebase, ClickableSpan не работает. Пожалуйста, помогите и спасибо.

Обзор приложений, подобных этому, введите описание изображения здесь

XML в MainActivity

      <com.google.android.material.button.MaterialButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/idDescAppName"
    android:id="@+id/idButtonSignUpWithEmail"
    android:layout_marginTop="125dp"
    android:layout_marginLeft="45dp"
    android:layout_marginRight="45dp"
    android:layout_marginBottom="10dp"
    style="@style/FirebaseUI.Button.AccountChooser.EmailButton"
    android:text="Sign up with Email"/>

<com.google.android.material.button.MaterialButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/idButtonSignUpWithEmail"
    style="@style/FirebaseUI.Button.AccountChooser.GoogleButton"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="45dp"
    android:layout_marginRight="45dp"
    android:layout_marginBottom="10dp"
    android:text="Sign up with Google"
    android:id="@+id/idButtonSignUpWithGoogle"/>

<com.google.android.material.button.MaterialButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/idButtonSignUpWithGoogle"
    style="@style/FirebaseUI.Button.AccountChooser.PhoneButton"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="45dp"
    android:layout_marginRight="45dp"
    android:text="Sign up with Phone"
    android:id="@+id/idButtonSignUpWithPhone"/>


<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@id/idButtonSignUpWithPhone"
    android:layout_marginTop="65dp"
    android:layout_marginStart="60dp"
    android:layout_marginEnd="60dp"
    android:textSize="18sp"
    android:text="Already, have an account ? Sign In"
    android:fontFamily="sans-serif-black"
    android:id="@+id/idSignIn"/>

Фрагменты кода в MainActivity

      @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);


        firebaseAuth = FirebaseAuth.getInstance();

// check user status
        authStateListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

                FirebaseUser user = firebaseAuth.getCurrentUser();

                if (user != null){
                    Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                    startActivity(intent);

                    finish();
                }else{
// create custom layout for firebaseUI

                    AuthMethodPickerLayout customLayout = new AuthMethodPickerLayout.Builder(R.layout.activity_main)
                            .setEmailButtonId(R.id.idButtonSignUpWithEmail)
                            .setGoogleButtonId(R.id.idButtonSignUpWithGoogle)
                            .setPhoneButtonId(R.id.idButtonSignUpWithPhone)
                            .build();
                    SignIn = (TextView) findViewById(R.id.idSignIn);

                    startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().setAuthMethodPickerLayout(customLayout)
                            .setAvailableProviders(providers).setTheme(R.style.MainActivityTheme).setIsSmartLockEnabled(false).build(),RC_SIGN_IN);


                    final String clickSignIn = "Already, have an account ? Sign In";
// Make the text pressable.
                    setSignIn(clickSignIn);

                }
            }


           };
 }

    private void setSignIn(String clickSignIn) {
        SpannableString spannableString = new SpannableString(clickSignIn);

        ClickableSpan clickableSpan = new ClickableSpan() {
            @Override
            public void onClick(@NonNull View widget) {
                Intent intent = new Intent(MainActivity.this, SignInActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);
            }
        };

        spannableString.setSpan(clickableSpan, 27, 31, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        SignIn.setText(spannableString);
        SignIn.setMovementMethod(LinkMovementMethod.getInstance());
    }

0 ответов

Другие вопросы по тегам