In questo tutorial, imparerai come creare i comandi di base di EditText per Android per raccogliere input di testo da parte dell'utente. Quindi imparerai come configurare, modellare e manipolare questi controlli in vari modi.
Questo tutorial mostra i passaggi per creare numerosi controlli EditText nell'applicazione Android. Innanzitutto, si impara come aggiungere controlli di input di testo di base ai file di layout e quali sono alcuni dei loro attributi più utili. Successivamente, si impara come recuperare il contenuto del controllo del testo. Infine, discuteremo alcune delle altre funzionalità disponibili per il controllo EditText in Android.
L'SDK di Android include un semplice controllo di testo modificabile da utilizzare all'interno dei tuoi layout: EditText (android.widget.EditText). Un buon esempio di utilizzo del controllo EditText sarebbe quello di raccogliere l'input del modulo, come "Inserisci un nome:" o "Inserisci una password:".
La figura 1 mostra un esempio di una schermata con molti controlli EditText diversi visualizzati su di essa.
Inizia creando un progetto Android. Implementa la tua applicazione Android normalmente. Una volta che hai configurato un progetto e l'applicazione è in esecuzione, decidi sotto quale schermata vuoi aggiungere controlli. Forse hai semplicemente creato un nuovo progetto Android con l'attività e il layout predefiniti (main.xml). Questo funzionerà per questo esercizio. Una volta impostato il tuo progetto Android, sei pronto per procedere con questo tutorial.
I controlli di EditText sono generalmente inclusi come parte del file di risorse di layout della tua attività. Ad esempio, per aggiungere un controllo EditText alla risorsa di layout main.xml associata all'applicazione, è necessario modificare il file di layout. Puoi farlo in Eclipse usando il designer di risorse di layout o modificando direttamente l'XML. I controlli possono anche essere creati a livello di codice e aggiunti al tuo schermo in fase di runtime. Crea semplicemente un controllo EditText (android.widget.EditText) e aggiungilo al tuo layout all'interno della tua attività.
Per aggiungere un controllo EditText a un file di risorse di layout, apri il file di layout /res/layout/main.xml che fa parte del tuo progetto Android. Fare clic su LinearLayout (o controllo layout genitore) a cui si desidera aggiungere il controllo EditText. In Eclipse dall'interno del designer di risorse di layout grafico, puoi selezionare il controllo EditText e trascinarlo nel layout principale.
Per configurare l'aspetto e il comportamento del controllo EditText, regolare gli attributi del controllo selezionando il controllo (nella scheda Struttura o nella finestra Anteprima) e modificandone gli attributi, come mostrato nella scheda Proprietà. È inoltre possibile modificare direttamente l'XML.
Ecco come si presenta la definizione XML per un controllo EditText di base:
Attributi specifici dei controlli di EditText di cui vorrete essere a conoscenza:
Discutiamo alcuni degli attributi più comuni per i controlli di EditText.
Per recuperare il valore di un controllo EditText dall'interno dell'attività, è possibile utilizzare il metodo getText () della classe EditText. Ad esempio, il codice seguente recupera un handle per il controllo EditText definito come editTextSimple:
final EditText simpleEditText = (EditText) findViewById (R.id.editTextSimple); String strValue = simpleEditText.getText (). ToString ();
Normalmente vuoi recuperare il contenuto di EditText, così come altri controlli di form in un evento specifico. Spesso, questo tipo di raccolta di informazioni viene attivato dall'utente premendo un pulsante (come OK o Invia) o premendo il pulsante Indietro.
Tuttavia, è possibile monitorare i controlli come EditText più da vicino se lo si desidera utilizzando i tipici listener del controllo di visualizzazione.
In genere, potresti essere interessato ad ascoltare eventi come:
1. Quando un utente fa clic sul controllo. In questo caso, registrare un listener utilizzando il metodo setOnClickListener ().
1. Quando un utente fa clic lunghi sul controllo. In questo caso, registrare un listener utilizzando il metodo setOnLongClickListener ().
1. Quando un utente preme un tasto all'interno del controllo. In questo caso, registrare un listener utilizzando il metodo setOnKeyListener ().
1. Quando un utente modifica la messa a fuoco da o verso il controllo. In questo caso, registrare un listener utilizzando il metodo setOnFocusChangedListener ().
Diamo un'occhiata all'esempio che cambia il focus. Quando il controllo diventa attivo, vedrai un evento modificato. Una volta che l'utente sposta l'attenzione lontano da questo controllo, lo vedrai di nuovo. Ecco un esempio di come monitorare il contenuto di un controllo EditText sulle modifiche allo stato attivo dalla tua classe di attività:
final EditText simpleEditText = (EditText) findViewById (R.id.editTextSimple); simpleEditText.setOnFocusChangeListener (new OnFocusChangeListener () public void onFocusChange (Visualizza v, booleano hasFocus) String strValue = simpleEditText.getText (). toString (); Log.d (DEBUG_TAG, "Utente imposta il valore EditText su" + strValue); );
Per impostazione predefinita, qualsiasi contenuto di testo all'interno di un controllo EditText viene visualizzato come testo normale. Viene utilizzata la tastiera software predefinita, per l'immissione di testo normale. Tuttavia, impostando un semplice attributo chiamato inputType, tutto può facilitare l'inserimento di diversi tipi di informazioni, come numeri di telefono e password. In XML, questa proprietà apparirebbe all'interno del controllo EditText come:
Android: InputType = "telefono"
O
Android: InputType = "textPassword"
Esistono diversi tipi di input per scopi diversi. Il telefono inputType limiterà l'utente ai numeri; la tastiera del software fornirà opzioni numeriche, come mostrato nella Figura 2.
Allo stesso modo, il metodo di immissione della password maschera la password durante la digitazione, come mostrato nella Figura 3.
Il recupero di queste informazioni dal controllo viene eseguito esattamente come se si stesse raccogliendo il testo di base, utilizzando il metodo getText ().
In generale, i controlli EditText sono usati per raccogliere input, non per visualizzarli. Detto questo, puoi sempre impostare il valore di un controllo EditText usando il metodo setText (), proprio come faresti con un normale controllo TextView.
Si consiglia inoltre di impostare il suggerimento per il controllo EditText per richiedere all'utente un input specifico. Quando l'utente digita questo controllo, il suggerimento viene sovrascritto. Puoi impostare la stringa di suggerimento del tuo controllo EditText nel tuo layout usando l'attributo hint:
Android: suggerimento = "@ string / suggerimento"
La Figura 4 mostra due controlli EditText. Il primo ha un set di suggerimenti per richiedere all'utente. Il secondo imposta il valore (e il colore del testo - rosso) del controllo. Questo non è un suggerimento, ma il VALUE effettivo impostato all'interno del controllo.
Puoi semplificare la vita dei tuoi utenti impostando alcuni attributi extra sui tuoi controlli EditText. Ad esempio, potresti voler utilizzare l'attributo in maiuscolo per capitalizzare automaticamente ogni frase, parola o carattere in un controllo EditText:
Android: capitalizzare = "frasi"
Sebbene l'opzione di frasi sia probabilmente la più popolare, potresti voler utilizzare tutte le parole in maiuscolo per inserire nomi e caratteri per le abbreviazioni di due lettere.
Allo stesso modo, puoi limitare i caratteri che possono essere inseriti in un campo usando l'attributo cifre. Ad esempio, potresti limitare un campo numerico a zero e uno come questo:
Android: cifre = "01"
Di default il cursore viene visualizzato in un EditText durante l'immissione. Puoi disabilitare il cursore usando l'attributo cursorVisible, in questo modo:
Android: cursorVisible = "false"
Abbiamo solo scalfito la superficie di ciò che puoi fare con un controllo EditText. I controlli EditText sono comunemente usati nelle interfacce utente delle applicazioni Android per raccogliere input testuali dall'utente. In questo tutorial, hai imparato come creare controlli EditText di Android e personalizzarli in una varietà di modi semplici. Una delle funzionalità più potenti dei controlli di EditText è la possibilità di impostare il suo inputType al fine di raccogliere testo, numeri, indirizzi e-mail e altre informazioni dall'utente. Questi attributi possono essere mescolati e abbinati per consentire controlli di input molto flessibili sullo schermo.
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android, seconda edizione e Sams ti insegna a sviluppare applicazioni Android in 24 ore, seconda edizione. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.
я я