În acest tutorial, veți învăța cum să creați controale de bază Android EditText pentru a aduna o intrare de text de la utilizator. Apoi veți învăța cum să configurați, să stylizați și să manipulați aceste controale într-o varietate de moduri.
Acest tutorial vă arată pașii pentru a crea un număr de controale EditText diferite în aplicația Android. În primul rând, învățați cum să adăugați controale de bază de introducere a textului în fișierele de aspect și ce dintre cele mai utile atribute ale acestora. Apoi, veți învăța cum să preluați conținutul controlului de text. În cele din urmă, discutăm câteva dintre celelalte funcții disponibile pentru controlul EditText în Android.
SDK-ul Android include un control de text ușor de editat pentru a fi utilizat în cadrul planificărilor: EditText (android.widget.EditText). Un bun exemplu de utilizare a controlului EditText ar fi colectarea intrărilor de formular, cum ar fi "Introduceți un nume:" sau "Introduceți o parolă:".
Figura 1 prezintă un exemplu de ecran cu multe controale EditText diferite afișate pe el.
Începeți prin crearea unui proiect Android. Implementați-vă aplicația Android ca în mod normal. Odată ce ați instalat un proiect și aplicația rulează, decideți în ce ecran să adăugați controale. Poate că ați creat pur și simplu un nou proiect Android cu Activitatea și layout-ul implicit (main.xml). Acest lucru va funcționa pentru acest exercițiu. Odată ce ați instalat proiectul Android, sunteți gata să continuați cu acest tutorial.
Controalele EditText sunt incluse, de obicei, ca parte a fișierului resursei de aranjare a activității. De exemplu, pentru a adăuga un control EditText la resursa de layout principal.xml asociată aplicației dvs., trebuie să editați fișierul de aspect. Puteți face acest lucru în cadrul Eclipse utilizând designerul Resource Layout sau prin editarea directă a XML-ului. Controalele pot fi create, de asemenea, programatic și adăugate pe ecran la timpul de execuție. Pur și simplu creați un control EditText (android.widget.EditText) și adăugați-l la aspectul din cadrul activității.
Pentru a adăuga un control EditText la un fișier de resurse de structură, deschideți fișierul /res/layout/main.xml care este parte a proiectului dvs. Android. Faceți clic pe butonul LinearLayout (sau controlul aspectului părinte) pe care doriți să-l adăugați controlului EditText. În Eclipse, din cadrul graficului Layout Resource designer, puteți selecta controlul EditText și trageți-l în aspectul părinte.
Pentru a configura modul în care arată și se comportă controlul EditText, ajustați atributele comenzii selectând comanda (fie în tab-ul Schiță, fie în fereastra de previzualizare) și schimbându-i atributele, așa cum se arată în fila Proprietăți. De asemenea, puteți edita XML direct.
Iată ce definește definiția XML pentru un control foarte simplu în EditText:
Atribute specifice ale controalelor EditText pe care doriți să le cunoașteți:
Să discutăm unele dintre cele mai comune atribute ale controalelor EditText.
Pentru a prelua valoarea unui control EditText din cadrul activității, puteți folosi metoda getText () din clasa EditText. De exemplu, următorul cod readuce un handle la controlul EditText definit ca editTextSimple:
textul final Editare simpleEditText = (EditText) findViewById (R.id.editTextSimple); Stringul strValue = simpleEditText.getText (). ToString ();
În mod normal, doriți să preluați conținutul EditText, precum și alte controale de formă la un anumit eveniment. Adesea, acest tip de colectare a informațiilor este declanșat de utilizator prin apăsarea unui buton (cum ar fi OK sau Submit) sau apăsarea butonului Înapoi.
Cu toate acestea, puteți monitoriza mai mult controalele, cum ar fi EditText, dacă doriți acest lucru, utilizând ascultătorii tipici de vizualizare a controlului.
În mod tipic, este posibil să fiți interesat să ascultați evenimente precum:
1. Când un utilizator dă clic pe butonul de control. În acest caz, înregistrați un ascultător utilizând metoda setOnClickListener ().
1. Când un utilizator dă clic pe controler. În acest caz, înregistrați un ascultător utilizând metoda setOnLongClickListener ().
1. Când un utilizator apasă o tastă în cadrul comenzii. În acest caz, înregistrați un ascultător utilizând metoda setOnKeyListener ().
1. Când un utilizator modifică focalizarea spre sau de la comanda. În acest caz, înregistrați un ascultător utilizând metoda setOnFocusChangedListener ().
Să ne uităm la exemplul de schimbare a focului. Atunci când controlul primește focalizare, veți vedea un eveniment schimbat de focalizare. Odată ce utilizatorul se mută concentrându-se de la acest control, îl veți vedea din nou. Iată un exemplu de monitorizare a conținutului unui control EditText asupra modificărilor de focalizare din cadrul clasei dvs. de activitate:
textul final Editare simpleEditText = (EditText) findViewById (R.id.editTextSimple); SimpleEditText.setOnFocusChangeListener (noul OnFocusChangeListener () public void onFocusChange (Vizualizați v, boolean hasFocus) String strValue = simpleEditText.getText () .toString (), Log.d (DEBUG_TAG, "EditText set de utilizator" + strValue); );
În mod implicit, orice conținut al textului dintr-un control EditText este afișat ca text simplu. Se utilizează tastatura implicită pentru introducerea textului simplu. Cu toate acestea, prin setarea unui atribut simplu numit inputType, tot ce puteți facilita introducerea diferitelor tipuri de informații, cum ar fi numerele de telefon și parolele. În XML, această proprietate ar apărea în controlul EditText ca:
Android: inputType = "telefon"
Sau
Android: inputType = "textPassword"
Există o varietate de tipuri diferite de intrări pentru scopuri diferite. Tipul de intrare al telefonului va restricționa utilizatorul la numere; tastatura software va oferi opțiuni numerice, după cum se arată în figura 2.
În mod similar, metoda de introducere a parolei maschează parola în timp ce o tastați, după cum se arată în Figura 3.
Preluarea acestor informații din control se efectuează exact la fel ca în cazul în care colectați text de bază, utilizând metoda getText ().
În general, controalele EditText sunt utilizate pentru colectarea intrărilor, fără a le afișa. Acestea fiind spuse, puteți seta întotdeauna valoarea unui control EditText utilizând metoda setText (), la fel cum ați face un control regulat TextView.
De asemenea, este posibil să doriți să setați sugestia pentru controlul EditText pentru a solicita unui utilizator o intrare specifică. Când utilizatorul introduce în acest control, indicele este suprascris. Aveți posibilitatea să setați șirul de sugestii al controlului EditText în aspectul dvs. utilizând atributul hint:
android: indiciu = "@ string / indiciu"
Figura 4 prezintă două controale EditText. Primul are un set de sugestii pentru a solicita utilizatorului. Al doilea setază valoarea (și culoarea textului - roșu) a comenzii. Aceasta nu este o sugestie, ci VALUE actuală stabilită în cadrul controlului.
Puteți simplifica viața utilizatorilor prin setarea câtorva atribute suplimentare pe controalele EditText. De exemplu, este posibil să doriți să utilizați atributul de capitalizare pentru a capitaliza automat fiecare propoziție, cuvânt sau caracter într-un control EditText:
Android: capitaliza = "Exemple"
Deși opțiunea de fraze este probabil cea mai populară, este posibil să doriți să capitalizați fiecare cuvânt pentru introducere ca nume și fiecare caracter pentru abrevieri de stare de două litere.
În mod similar, puteți limita caracterele care pot fi introduse într-un câmp utilizând atributul de cifre. De exemplu, s-ar putea să limitați câmpul unui număr la zero și la unul similar:
Android: cifre = "01"
Implicit, cursorul se afișează într-un text EditText în timpul intrării. Puteți dezactiva cursorul utilizând atributul cursorVisible, după cum urmează:
Android: cursorVisible = "false"
Am zgâriat doar suprafața a ceea ce puteți face cu un control EditText. Butoanele EditText sunt utilizate în mod obișnuit în interfețele utilizatorilor de aplicații Android pentru a aduna intrări textuale de la utilizator. În acest tutorial, ați învățat cum să creați controale Android EditText și să le personalizați într-o varietate de moduri simple. Una dintre cele mai puternice caracteristici ale controalelor EditText este abilitatea de a seta inputType pentru a colecta text, numere, adrese de email și alte informații de la utilizator. Aceste atribute pot fi amestecate și potrivite pentru a permite controale foarte flexibile de intrare pe ecran.
Dezvoltatorii mobili Lauren Darcey și Shane Conder au coautorizat mai multe cărți despre dezvoltarea Android: o carte de programare în profunzime intitulată Dezvoltarea aplicațiilor fără fir Android, ediția a doua și Sams Teach Yourself Dezvoltare de aplicații Android în 24 de ore, ediția a doua. Când nu scriu, își petrec timpul dezvoltând software-ul mobil la compania lor și oferind servicii de consultanță. Acestea pot fi obținute prin e-mail la androidwirelessdev@[email protected], prin intermediul blogului lor la androidbook.blogspot.com, și pe Twitter @ androidwireless.
я я