Tastatură Android și butoane hardware

chei hardware și tastatură

butoane hardware și tastatura are următoarele metode de prelucrare

  • onkeydown () - numit atunci când orice cheie hardware;
  • onkeyup () - numit atunci când orice tastă hardware este eliberată;

În plus față de cheile, există și alte metode de prelucrare date introduse de utilizator (care nu sunt incluse aici):

  • onTrackballEvent () - declanșat de trackball mișcare;
  • onTouchEvent () - handler evenimente touch screen declanșate prin atingere, și retragerea degetului în timpul tragerii.

Pentru componentele și de a răspunde în mod activ pentru a trece peste apăsări de taste stivuitoare onkeyup () eveniment și onkeydown ():

Parametrul keycode conține codul cheie care a fost apăsat; comparati-l cu codurile cheie statice stocate în clasa KeyEvent. pentru a efectua prelucrarea corespunzătoare.

Opțiunea KeyEvent include, de asemenea, mai multe metode: isAltPressed (). isShiftPressed () și isSymPressed (). stabili dacă tastele funcționale sunt apăsate, cum ar fi Alt, Shift și Sym. isModifierKey static () metoda ia keycode și determină dacă cheia este apăsat modificator.

Butonul Înapoi: Sunteți sigur că doriți să ieșiți din program?

Pentru a realiza o astfel de problemă, este necesar să se suprascrie comportamentul prin butonul Back onBackPressed () metoda după cum urmează:

Tastatură Android și butoane hardware

Această metodă a apărut în Android 2.0. Pentru versiunile anterioare utilizat un cod de manipulare standard de onkeydown ():

Dublu-clic pe butonul Înapoi

O altă opțiune - pentru a ieși din aplicație când faceți dublu clic pe butonul Back. Util în cazurile în care considerați că un utilizator poate apăsa accidental butonul, de exemplu, în timpul unui joc activ. Aplicația se va închide atunci când utilizatorul dublu-clic pe butonul timp de două secunde.

butonul Acasă

Pot fi urmărite prin presa activității onUserLeaveHint metoda butonul Acasă ()

Butonul de procesare Meniu

Ar trebui să rețineți că presa lung este dificil de înțeles, ca de obicei, apăsând suprima în mod constant acest eveniment.

alte butoane

Ei bine, de fapt, vă puteți ține evidența nu numai folosind butonul de meniu, dar butonul de căutare și butonul de volum în sus.

Vă rugăm să rețineți că pentru butoanele de volum returnează false. și anume noi nu suprascrie comportamentul unui buton, si se lasa la latitudinea sistemului.

Un exemplu de lucru cu butoanele de volum pot fi găsite în articolul tonuri de apel. Controlul volumului

Același principiu funcționează onkeyup metoda (). onKeyLongPress), metoda (poate fi utilizată dacă event.startTracking), metoda (a fost utilizată în onkeydown) metoda (. Urmează un comportament buton. În exemplul nostru, am urmărit Volume_Up buton.

ascunde tastatura

Se întâmplă ca atunci când începe activitatea imediat apare tastatura. În cazul în care un astfel de comportament nu este ca, atunci scrie în manifest valoarea dorită în Android atributul: windowSoftInputMode (vezi mai jos.).

În unele cazuri, ar fi de dorit să se îndepărteze tastatura de pe ecran fără a apăsa butonul din spate, și software-ul. Într-o aplicație mea, în cazul în care o mulțime de câmpuri text, am folosi următorul cod atunci când utilizatorul face clic pe butonul:

Codul arata ca acest lucru, dacă l-ați scrie în activitate. Dacă puneți-l într-o altă clasă, Activitate exemplu trebuie să fie transmisă ca parametru pentru a apela metodele și modul în care activity.getApplicationContext (). unde activitatea - Activitate exemplu.

Componenta poate fi scăpa de focalizare:

Pentru a forța tastatura de afișare, utilizați următorul cod:

Apropo, amintesc metoda de a închide tastatura. Această metodă nu necesită prezența elementelor View.

Dacă vom continua tema de spectacol a tastaturii, poate fi următoarea situație. Să presupunem că aveți un DialogFragment EditText. În derivarea casetei de dialog care aveți nevoie pentru a seta focalizarea pe EditText și arată tastatura:

Ca alternativă, utilizați tag-ul pentru EditText dorit.

Modificarea tipului de tastatură pentru EditText

Atunci când elementul EditText are focalizarea, apare tastatura. Este posibil să setați vizualizarea tastatură dorită prin atributul InputType sau electronic, prin setInputType () metodă:

TYPE_CLASS_DATETIME - data și ora
TYPE_CLASS_NUMBER - cifre
TYPE_CLASS_TEXT - scrisori

Redefiniți butonul Enter

Pe langa atributul InputType, puteți utiliza, de asemenea, Android atributul: imeOptions in componenta EditText. care vă permite să schimbați tasta Enter de pe tastatură pentru alte taste, de exemplu, Next. Du-te. Căutare, etc. posibile valori .:

Pentru a vedea toate opțiunile de prima mana, puteți crea mai multe casete de text, și a comuta între ele:

Pentru a răspunde la apăsarea diferitelor stări Enter, trebuie să pună în aplicare interfața TextView.OnEditorActionListener butonul. Un mic exemplu:

În exemplul nostru, dacă un utilizator caută ceva care nu este asociat cu pisica, butonul de căutare nu va efectua dorința dispozitivului proprietarului.

Puteți schimba, de asemenea, textul de pe butonul cu Android atributul: imeActionLabel:

Textul de pe butonul sa schimbat, dar Enter procesarea din exemplul anterior, am încetat să funcționeze. Codul meu buggy în memorie.

UPD: Reader Maxim G. a propus următoarea soluție la problema. Eliminați atributele imeOptions. imeActionId. imeActionLabel și a instala software-ul lor.

La cererea poate urmări numai în domeniul dorit. Pune condiție suplimentară după prima unitate în cazul în care:

interfaţă OnKeyListener

Pentru a răspunde la apăsarea chei în interiorul vizualizărilor existente de activitate, pune în aplicare interfață OnKeyListener și atribuiți-l la obiect View. Folosind metoda setOnKeyListener (). În loc de punere în aplicare a unor metode de evenimente de presă și de eliberare cheie, OnKeyListener utilizează onKey eveniment unic ().

Utilizați parametrul keycode pentru cheia care a fost apăsat. Parametrul KeyEvent trebuie să recunoască tipul de eveniment (reprezentat prin constanta de presare și eliberarea ACTION_DOWN -. ACTION_UP).

activitatea de schimbare

Pentru a pop-up tastatură nu este acoperit de elementul de interfață, care are focus, și a mutat activitatea în sus poate fi în manifest pentru activitatea dorită pentru a înregistra Android atribut: windowSoftInputMode cu parametrul adjustPan:

De asemenea, sunt disponibile și alte opțiuni:

  • stateUnspecified - setarea implicită. Sistemul se selectează comportamentul de tastatură corespunzător.
  • stateUnchanged - tastatura își păstrează ultima stare (vizibile sau invizibile), în cazul în care activitatea a casetei de text are focalizare.
  • stateHidden - tastatura este ascuns atunci când deschideți Activitate. Tastatura apare atunci când tastați. În cazul în care utilizatorul trece la o altă activitate, tastatura va fi ascuns, dar atunci când se întoarce înapoi tastatura rămâne pe ecran, în cazul în care este vizibil la activitatea de închidere.
  • stateAlwaysHidden - tastatura este întotdeauna ascuns, în cazul în care activitatea devine punctul central.
  • stateVisible - tastatura vizibilă.
  • stateAlwaysVisible - tastatura devine vizibilă atunci când utilizatorul deschide activitatea.
  • adjustResize - dimensiuni ale componentelor din fereastra activă poate fi modificat pentru a face loc pentru tastatura moale.
  • adjustPan - ecran de activitate și componentele sale nu sunt schimbate și transferate, astfel încât câmpul de text cu accent nu a fost închis de tastatura.
  • adjustUnspecified - setarea implicită. Sistemul se selectează modul dorit.

Parametrii cu starea de prefix poate fi combinat cu setările prestabilite a regla:

De exemplu, pentru a afișa tastatura de la activitatea de pornire, utilizați stateVisible.

Aceste setări sunt disponibile în mod programatic. De exemplu, codul pentru adjustResize:

Apropo, acest cod nu va funcționa în modul ecran complet (pavilion FLAG_FULLSCREEN). Consultați documentația.

Învață limba selectată pe tastatură

Pentru a determina limba curentă, puteți folosi următorul cod de pe tastatură.

Ar trebui să fie atent cu exemplul. Pe emulator cu Android 6.0 exemplu pentru a funcționa corect. Pe dispozitivele reale am determinat corect limba română, dar când comutați la limba engleză a dat un șir gol sau o valoare „zz“. În acest caz, puteți recurge la cazul în care condițiile și verificați valoarea așteptată.

Alte lecturi