Passa ai contenuti principali

Android Studio - EditText: gestione della tastiera

In questo articolo vedremo come è possible interagire con l'EditText e tastiera.
Se quando apriamo l'app viene visualizzata automaticamente la tastiera ma noi vogliamo visualizzarla solo quando clicchiamo sull'EditText basta inserire la seguente riga di codice all'interno del file AndroidManifest.xml: ecco dove inserire la riga di codice (vedi riga 13): in questo modo all'apertura dell'app non viene visualizzata la tastiera.

Se quando orientiamo lo schermo viene visualizzata la tastiera basta aggiungere anche questa riga sempre al file AndroidManifest.xml ecco dove inserire la riga di codice (vedi riga 14): in questo modo quando modifichiamo l'orientamento dello schermo non verrà visualizzata la tastiera.

Se abbiamo più EditText all'interno della nostra app sarebbe opportuno passare da un EditText all'altro senza dover cliccare all'interno dell' EditText.
Per fare questa operazione è necessario aggiungere una questa riga di codice in fase di dichiarazione dell'EditText nel file MainActivity.kt all'interno della funzione onCreate Questo è un IME, cioè un input method (IME) implementa un particolare modello di interazione che l'utente può utilizzare (nel nostro caso il tasto NEXT per passare all'EditText successiva). Il tipo di IME che verrà aggiunto alla nostra tastiera è passato come argomento al metodo setImeOptions, questo perchè è possibile scegliere, oltre al tasto NEXT altri IME da inserire nella tastiera. Elenchiamo quelli più utilizzati:
  • IME_ACTION_DONE - chiude la tastiera. In alcuni tipi di EditText (definito dall'attributo input_Type) è come impostazione predefinita e non è necessario dichiararlo
  • IME_ACTION_GO - inserisce un bottone che ha l'effetto di generare un'azione precisa oltre alla chiusura della tastiera. Per esempio questo tipo di IME viene aggiunto alle tastiere dove deve essere immesso un URL e una volta cliccato il tasto Go viene fatta la richiesta HTML al server ospitante la risorsa indicata dall'utente.
  • IME_ACTION_SEND - viene utilizzato per inviare il testo inserito nell'EditText ad un determinato servizio come per esempio un'applicazione di invio messaggi

Vedi questo articolo su come eseguire una funzione alla pressione del tasto DONE sulla tastiera.
ESEMPIO 1:
Ecco come si presenta il file activity_main.xml Ecco come si presenta il file MainActivity.kt


Download Project
Download file APK



Vedi introduzione a EditText
Vedi recupero del testo inserito
Vedi eliminare il Focus

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.