Passa ai contenuti principali

Android Studio - EditText: eliminare il focus

In questo articolo vedremo come poter eliminare il cursore e la selezione (Focus) dell'EditText una volta inserito testo o numeri.
Questo esempio prende come base il progetto presentato in questo articolo con l'aggiunta della funzione ClearFocus (annulla la selezione) e CursorVisible (visualizzazione o meno del cursore)

Cos'è il Focus e il Cursor?
Nell'immagine qui sotto, come si può vedere, la prima EditText è selezionata (Focus) e il cursore (Cursor) lampeggiante, mentre la seconda EditText non è selezionata e senza cursore.
Quindi il Focus è quando attiviamo l'EditText per l'inserimento del testo, mentre il Cursor è il cursore che ci dice dove stiamo inserendo il testo.

Ora se scriviamo qualcosa nella prima EditText e clicchiamo sul pulsante, vedremo che oltre ad eseguire la funzione per cui è programmato, la EditText rimane selezionata (Focus) e il cursore (Cursor) lampeggiante.
Per fare in modo che alla pressione del pulsante venga annullato il Focus e disattivato il Cursor nell'EditText bisogna seguire alcuni accorgimenti.
Nel file activity_main.xml occorre aggiungere una View con l'aggiunta degli attributi:
una View molto utile a questo scopo può essere ad esempio un divisorio (Divider) Questa View, con gli attributi specificati sopra, fa si che quando andiamo a disattivare il Focus e il Cursor sulla EditText, la View divider si prende il Focus.
Se non specifichiamo questi attributi la disattivazione del Focus sulla EditText non avrà effetto.

N.B. Inserire questa View prima della EditText a cui si vuole cancellare il Focus.
Se nel layout si hanno più EditText basta inserire una sola View con gli attributi specificati sopra.
Nel file MainActivity.kt all'interno della funzione setOnClickListener del pulsante bisogna inserire queste righe di codice: Se si desidera cancellare il Focus e il Cursor su tutti gli EditText aggiungere le righe di codice sopra riportate cambiando la variabile a cui sono associate le altre EditText.
Mentre per la seconda EditText non è stato inserito alcun codice ed il risultato è il seguente:
Ecco il file activity_main.xml Ecco il file MainActivity.kt

Download Project
Download file APK


Vedi introduzione a EditText
Vedi gestione della tastiera
Vedi recupero del testo inserito

Commenti

Post popolari in questo blog

Arduino - Lampeggio Led (delay vs. millis)

Cosa sono delay() e millis()? Delay() è una funzione che mette in pausa il programma per un determinato tempo espresso in millisecondi, così facendo viene interrotta l'esecuzione del programma e se abbiamo un dispositivo in ingresso che durante il tempo di pausa cambia di stato il programma non se ne accorge fino a quando non ricomincia l'esecuzione dall'inizio. La struttura di delay è: delay(1000);   da inserire nel punto dello sketch in qui si vuole interrompere il programma in questo modo il programma viene messo in pausa per 1000 millisecondi = 1 secondo. Per saperne di più Millis() è una funzione che permette di sapere da quanto tempo è in funzione il microprocessore di Arduino UNO. In questo modo il programma non andrà mai in pausa ed è sempre in esecuzione, perché millis memorizza il tempo trascorso dall'avvio e poi per eseguire una determinata funzione si fa un controllo del tempo iniziale e il tempo trascorso. Per saperne di più Vediamo un esempi

Arduino - Utilizzo potenziometro e display LCD

Leggere il valore di un poteziometro (parte 1) Il potenziometro è un componente molto utilizzato in elettronica in quanto il suo uso permette di regolare una tensione variabile (in questo caso 0 - 5 Volt) in ingresso al microcontrollore. Il potenziometro va collegato secondo lo schema qui sotto al pin analogico A0 di Arduino.

Arduino - Lettura tensione potenziometro e display LCD

Leggere il valore di un poteziometro (parte 2) Oggi vedremo come leggere il valore in tensione di un potenziometro collegato al pin Analogico A0 di Arduino.