4
respostas

Números no campo nome do cartão

Mesmo usando o android:digits ainda consigo colocar números e outros símbolos no edit text. Existe alguma outra solução?

XML do edit text:

4 respostas
<EditText
        android:id="@+id/pagamento_nome_no_cartao"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="Nome no cartão"
        android:digits="abcdefghijklmnopqrstuvxywzç ABCDEFGHIJKLMNOPQRSTUVXYWZÇ"
        android:textAlignment="viewStart"
        app:layout_constraintEnd_toEndOf="@id/pagamento_cvc_cartao"
        app:layout_constraintStart_toStartOf="@id/pagamento_mes_cartao"
        app:layout_constraintTop_toBottomOf="@id/pagamento_cvc_cartao" />

você pode colocar o input type também pra reforçar, mas isso deveria ser o suficiente, está rodando num dispositivo real ?

Então, eu coloquei o input type e rodei a app no meu próprio celular, porém ainda sim é possível colocar números e outros símbolos no campo "nome no cartão"

Segue o código do meu arquivo xml:

<EditText
        android:id="@+id/pagamento_nome_no_cartao"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:digits="@string/mascara_nome_no_cartao"
        android:hint="@string/nome_no_cartao"
        android:inputType="text"
        android:textAlignment="viewStart"
        app:layout_constraintEnd_toEndOf="@id/pagamento_cvc_cartao"
        app:layout_constraintStart_toStartOf="@id/pagamento_mes_cartao"
        app:layout_constraintTop_toBottomOf="@id/pagamento_cvc_cartao" />

No caso eu acho que deixaria com digits e inputType

Outra opção que tu pode fazer é colocar um textWatcher e ver o caracter que é digitado e dentro dele, remove-lo se não for algo que você aceite, imagino que role usar uma regex pra fazer isso de maneira 'simples'.