Keyboard Type — mi ez, billentyűzettípusok és beviteli beállítás Androidban

Szerző: IT Sectr Megjelenés: 2026-07-07 Olvasási idő: 9 perc

Keyboard Type — a virtuális billentyűzet konfigurációja Androidban, amely meghatározza a megjelenített karakterek készletét és elrendezését egy adott beviteli mezőhöz. Az Android számos előre beállított típust támogat: text (szabványos szöveges), number (numerikus), phone (telefonos), email (@ karakterrel), textPassword (jelszavakhoz), datetime és mások. Minden típus optimalizálja a beviteli felületet egy adott feladathoz — például az email billentyűzet a @ jelet és a pontot mutatja a főképernyőn. A Android Developers (2026) adatai szerint a Keyboard Type helyes megválasztása 20–40%-kal csökkenti a bevitelhez szükséges billentyűleütések számát a szabványos szöveges billentyűzethez képest.

Főbb pontok

  • Keyboard Type — az android:inputType attribútum által meghatározott billentyűzetmód Androidban.
  • Fő típusok — text, number, phone, email, textPassword, datetime különböző beviteli forgatókönyvekhez.
  • Bevitel optimalizálása — a megfelelő billentyűzettípus 20–40%-kal gyorsítja az űrlapok kitöltését.
  • Zászlók kombinációja — az inputType kombinálja a beviteli osztályt és a módosítókat (többsoros, automatikus javítás).
  • IME options — az imeOptions attribútum kezeli a művelet gombot a billentyűzeten (Done, Search, Next).

Mi az a Keyboard Type Androidban

Keyboard Type az android:inputType attribútum értékével XML-ben vagy a setInputType() programozott hívásával határozható meg kódban. Az InputType egy bitmaszk, ahol a beviteli osztály (osztály) módosító zászlókkal van kombinálva. Alaposztályok: TYPE_CLASS_TEXT szöveghez, TYPE_CLASS_NUMBER számokhoz, TYPE_CLASS_PHONE telefonokhoz, TYPE_CLASS_DATETIME dátumokhoz és időhöz.

Minden Keyboard Type három szempontot befolyásol: a virtuális billentyűzet elrendezését (mely karakterek láthatók a főképernyőn), a bevitt karakterek szűrését (mely karakterek engedélyezettek) és az automatikus javítás/kiegészítés viselkedését. Például a number billentyűzet csak számjegyeket és tizedes elválasztót jelenít meg, és nem mutat betűket, még akkor sem, ha a felhasználó módot vált. A Android Developers Documentation (2026) szerint az osztályok zászlókkal való kombinálása lehetővé teszi nagymértékben specializált módok létrehozását: többsoros szöveg automatikus javítással, lebegőpontos szám, jelszó automatikus kiegészítési lehetőséggel.

Fontos megérteni, hogy a Keyboard Type egy ajánlás a beviteli rendszer (IME) számára. Egyes harmadik féltől származó billentyűzetek (Gboard, SwiftKey) részben figyelmen kívül hagyhatják a megadott típust, ha a felhasználó saját preferenciákat állított be. A legtöbb szabványos Android billentyűzet és a Google Gboard azonban szigorúan követi a megadott beviteli típust.

kotlin
// Billentyűzettípus programozott beállítása
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — szabványos szöveges billentyűzet

TYPE_CLASS_TEXT — a szövegbevitel alaposztálya. Aktiválja a szabványos QWERTY billentyűzetet betűkkel, számokkal és szimbólumokkal. A Text osztály rendelkezik a legtöbb módosítóval, amelyek pontosítják a viselkedést: TYPE_TEXT_FLAG_CAP_SENTENCES (automatikus nagybetű a mondat elején), TYPE_TEXT_FLAG_AUTO_CORRECT (automatikus javítás), TYPE_TEXT_FLAG_MULTI_LINE (többsoros mód), TYPE_TEXT_FLAG_NO_SUGGESTIONS (javaslatok kikapcsolása).

A szöveges billentyűzet módosítói kombinálhatók, pontos konfigurációt létrehozva: például a text|textCapSentences|textAutoCorrect alkalmas egy megjegyzés beviteli mezőhöz, ahol automatikus nagybetűre és gépelési hibák javítására van szükség. Míg a text|textNoSuggestions kód vagy speciális kifejezések beviteléhez használatos, ahol az automatikus javítás káros lehet.

A UX Stack Exchange (2025) adatai szerint az automatikus javítással rendelkező szöveges billentyűzet 15–25%-kal gyorsítja a bevitelt az átlagos felhasználó számára, de technikai kifejezések (kód, URL, email) esetén ajánlott kikapcsolni az automatikus javítást, mivel az gyakran helyettesíti a helyes kifejezéseket helytelenekkel.

xml
<!-- Text with autocorrect and capital sentences -->
android:inputType="textCapSentences|textAutoCorrect"

<!-- Text without suggestions and autocorrect -->
android:inputType="textNoSuggestions"

Number — numerikus billentyűzet

TYPE_CLASS_NUMBER aktiválja a numerikus billentyűzetet, amely csak számjegyeket, tizedes elválasztót és mínusz jelet jelenít meg. Ezt a típust mennyiség, ár, életkor, kódok és egyéb numerikus adatok beviteli mezőihez használják. A numerikus billentyűzet kevesebb helyet foglal a képernyőn, mint a szöveges, és kizárja a véletlen betűbevitelt.

A Number három módosítóval rendelkezik: TYPE_NUMBER_FLAG_DECIMAL hozzáadja a tizedes pontot/vesszőt, TYPE_NUMBER_FLAG_SIGNED hozzáadja a mínusz jelet negatív számokhoz, TYPE_NUMBER_VARIATION_PASSWORD — PIN-kódokhoz, ahol a számjegyek rejtett szimbólumokként jelennek meg. A number|numberDecimal|numberSigned kombináció egy teljes értékű mezőt hoz létre tetszőleges előjelű lebegőpontos számok beviteléhez.

  • number — pozitív egész számok (életkor, termékek száma).
  • numberDecimal — számok tizedes résszel (árak, súly, magasság).
  • numberSigned — előjeles számok (hőmérséklet, koordináták).
  • numberPassword — számjegyek rejtett bevitele PIN-kódokhoz.
kotlin
// Numerikus bevitel tizedes ponttal
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// Ellenőrizze a bevitt számot
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone és Email — speciális billentyűzetek

TYPE_CLASS_PHONE aktiválja a telefon billentyűzetet, amely a telefonszámokra jellemző számjegyeket és szimbólumokat jeleníti meg: +, #, *, (, ). A number billentyűzettel ellentétben a phone egy kiegészítő módban a betűk elrendezését is mutatja, mivel a telefonszámok betűket is tartalmazhatnak (például 1-800-FLOWERS). A phone osztálynak nincsenek további zászlói, de támogatja a TYPE_TEXT_VARIATION_PHONE_ETC-t mellékállomások beviteléhez.

TYPE_TEXT_VARIATION_EMAIL_ADDRESS aktiválja az email billentyűzetet, ahol a @ jel és a pont a főképernyőn található, valamint a gyakori domain kiterjesztések (.com, .net, .org) is elérhetők. A Gboard további gombokat jelenít meg népszerű domainekkel a @ utáni bevitelkor. Az email billentyűzet automatikusan kikapcsolja az automatikus javítást, mivel az email címek nem szabványos karakterkombinációkat tartalmazhatnak.

A Google Material Design Guidelines (2025) szerint telefon mezőkhöz ajánlott az android:digits attribútumot is megadni, amely korlátozza az engedélyezett karakterkészletet. Email mezőkhöz fontos az autofillHints="email" megadása is a jelszókezelő és a Google Autofill általi automatikus kitöltés támogatásához.

xml
<!-- Email keyboard with autofill -->
android:inputType="textEmailAddress"
android:importantForAutofill="yes"
android:autofillHints="emailAddress"

<!-- Phone keyboard with digit restriction -->
android:inputType="phone"
android:digits="0123456789+"

Password — billentyűzet jelszavakhoz

TYPE_TEXT_VARIATION_PASSWORD és TYPE_NUMBER_VARIATION_PASSWORD — bizalmas adatok beviteli módjai. A textPassword beállításakor a bevitt karakterek pontokként vagy csillagokként jelennek meg (az Android verziójától és a billentyűzettől függően). A billentyűzet ebben a módban kikapcsolja az automatikus javítást és a bevitt szavak felhasználói szótárba mentését, megakadályozva a jelszó kiszivárgását a prediktív beviteli funkciókon keresztül.

A Password billentyűzet letiltja a mező tartalmának képernyőkép készítését is (FLAG_SECURE zászló), bár ez a viselkedés az adott billentyűzet implementációjától függ. Az Android 8.0-tól (API 26) kezdve a jelszó billentyűzetek támogatják az automatikus kitöltést jelszókezelőkön keresztül, ha az importantForAutofill="yes" attribútum be van állítva.

A Android Security Recommendations (2025) szerint jelszó mezőkhöz ajánlott továbbá: a maxLength beállítása a nagyon hosszú jelszavak megelőzésére (amelyek adatbázis-támadást jelenthetnek), az inputType="textPassword" használata TextInputLayout és endIconMode="password_toggle" együtt, hogy a felhasználó ellenőrizhesse a megadott jelszót az űrlap elküldése előtt.

xml
<!-- Password field with show/hide icon -->
@+id/tilPasswordField
app:endIconMode="password_toggle">

    @+id/etPasswordField
    android:inputType="textPassword"
    android:maxLength="64"
    android:importantForAutofill="yes" />

</com.google.android.material.textfield.TextInputLayout>

Keyboard Type beállítása kódban

A Keyboard Type programozott beállítása lehetővé teszi a billentyűzet mód dinamikus megváltoztatását a kontextustól vagy a felhasználói beviteltől függően. Például a mező típusának váltásakor (szöveg/szám/dátum) vagy a locale megváltoztatásakor. A setInputType() metódus elfogad egy InputType bitmaszkot, és azonnal frissíti a billentyűzetet, ha a mező fókuszban van.

Típus dinamikus váltása

kotlin
// Váltás szöveges és numerikus bevitel között
fun switchInputType(field: EditText, isNumeric: Boolean) {
    field.inputType = if (isNumeric) {
        InputType.TYPE_CLASS_NUMBER or
            InputType.TYPE_NUMBER_FLAG_DECIMAL
    } else {
        InputType.TYPE_CLASS_TEXT or
            InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
    }
    field.setSelection(field.text.length)
}

Aktuális típus ellenőrzése

kotlin
// Ellenőrizze, hogy a mező numerikus-e
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// Ellenőrizze, hogy az automatikus javítás be van-e kapcsolva
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

Gyakran ismételt kérdések

Mi történik, ha nem adok meg Keyboard Type-ot?

Ha az inputType nincs megadva, az EditText alapértelmezés szerint a TYPE_CLASS_TEXT-et használja a TYPE_TEXT_FLAG_MULTI_LINE zászlóval. Ez szabványos QWERTY billentyűzetet és többsoros bevitelt jelent. A legtöbb mezőhöz ajánlott explicit módon megadni az inputType-ot a billentyűzet helyes viselkedésének és a karakterek szűrésének biztosításához.

Hogyan készíthetek billentyűzetet „Done" gombbal az „Enter" helyett?

Használja az android:imeOptions="actionDone" attribútumot az EditText-en. Ez lecseréli az Enter gombot egy Done gombra. Egyéb lehetőségek: actionSearch (nagyító), actionNext (jobbra nyíl), actionSend (küldés). A lenyomás kezelését implementálja az OnEditorActionListener segítségével a kódban.

Kikapcsolható a billentyűzet rezgése egy mezőhöz?

Nem kapcsolható ki a rezgés egy adott mezőhöz — ez egy rendszerbeállítás, amelyet a felhasználó kezel a billentyűzet beállításaiban. Azonban teljesen megakadályozhatja a billentyűzet megjelenését az android:focusable="false" attribútum beállításával az EditText-en vagy a megjelenítés megszakításával a dispatchTouchEvent segítségével.

Hogyan készítek csak olvasható mezőt, de szöveg másolási lehetőséggel?

Állítsa be az android:inputType="none" értéket, vagy hívja programozottan a editText.setKeyListener(null) függvényt. A mező megjeleníti a szöveget, de a billentyűzet nem jelenik meg fókusz esetén. A felhasználó kijelölheti és másolhatja a szöveget, de nem módosíthatja azt. Alternatíva — használjon TextView-t textIsSelectable="true" beállítással.

Miért nem változik a billentyűzet a setInputType() után?

A setInputType() meghívása után újra meg kell jeleníteni a billentyűzetet, mivel a rendszer nem frissítheti automatikusan az IME-t. Hívja meg az InputMethodManager.restartInput(view) függvényt a kényszerített frissítéshez. Ha a mező nincs fókuszban, először hívja a requestFocus()-t, majd a restartInput-ot.

Összefoglaló

  • Keyboard Type meghatározza a billentyűzet elrendezését, szűrését és viselkedését egy Android beviteli mezőhöz.
  • text — szabványos QWERTY billentyűzet automatikus javítás, nagybetűk és többsoros módosítókkal.
  • number — numerikus billentyűzet egész és tört számokhoz signed és decimal opcióval.
  • phone — telefon billentyűzet számjegyekkel, +, #, * és betűs számok támogatásával.
  • email — billentyűzet @, pont és gyors hozzáféréssel domain kiterjesztésekhez.
  • textPassword — rejtett bevitel az automatikus javítás és szótár mentés kikapcsolásával.
  • imeOptions konfigurálja a művelet gombot a billentyűzeten: Done, Search, Next, Send.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is