Как создать подавляемый 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());
}