2011-02-18 19 views
5

Esiste comunque un modo per aggiungere una stringa a un valore EditText, in modo che la stringa aggiunta non sia modificabile?Aggiungi stringa non modificabile a EditText

Ad esempio, ho un EditText per gli indirizzi di posta elettronica, voglio trattare un indirizzo di posta elettronica come una singola entità piuttosto che singoli caratteri. Pertanto, se un utente cancella l'ultimo carattere dell'indirizzo e-mail, voglio che venga rimosso l'intero indirizzo e-mail anziché l'ultimo carattere.

Ho guardato Spannable ma non vedo nulla di ovvio. Questo è simile a come Gmail e altre app lo fanno.

+3

Forse si può semplicemente avere un listener di testo modificato e quindi modificare manualmente il contenuto di EditText, quindi sostituirlo con quello che si desidera. Se l'utente immette [email protected], quando la lunghezza diminuisce di 1, imposta il testo su una stringa vuota. Non so se è quello che vuoi però. :) – Zarah

+0

@Zarah: buona risposta (ho svalutato :-). Forse avresti dovuto metterlo come una "risposta" invece di un "commento", però. Come ora, non sembra essere un modo per Chris Banes di accettare la tua soluzione come "La risposta" (a condizione che lo voglia, ovviamente). – dbm

+0

@dbm Ehi, grazie! :) Non ero sicuro se fosse quello che voleva Chris Banes. Sembra che molte persone siano d'accordo con me, quindi la ripubblicano come una risposta. :) – Zarah

risposta

4

Ripubblicare il mio commento come risposta (e modificare le parole per rendere più chiaro il mio suggerimento).

Avere un [onTextChanged] (http://developer.android.com/reference/android/widget/TextView.html#onTextChanged(java.lang.CharSequence, int, int, int)) collegata al EditText ricevere una notifica di input dell'utente. È quindi possibile controllare la lunghezza dei contenuti di EditText e, se diminuisce di 1, è possibile presumere che l'utente abbia cancellato un carattere.

Se l'utente ha immesso [email protected] sul proprio onTextChanged, è possibile impostare il testo su una stringa vuota. Ovviamente dovresti prima fare qualche controllo per assicurarti che l'utente abbia inserito un indirizzo email completo prima di applicare la tua modifica. Ad esempio, assicurati che l'utente abbia già inserito il carattere @ o che ci sia spazio dopo l'ultimo carattere non spaziale.

Problemi correlati