Keyboard Type — wat is het, toetsenbordtypen en invoerconfiguratie in Android

Auteur: IT Sectr Gepubliceerd: 2026-07-07 Leestijd: 9 min

Keyboard Type — is de configuratie van het virtuele toetsenbord in Android, die de set weergegeven tekens en lay-out voor een specifiek invoerveld bepaalt. Android ondersteunt vele vooraf ingestelde typen: text (standaard tekst), number (numeriek), phone (telefoon), email (met @-teken), textPassword (voor wachtwoorden), datetime en andere. Elk type optimaliseert de invoerinterface voor een specifieke taak — bijvoorbeeld het email-toetsenbord toont het @-teken en de punt op het hoofdscherm. Volgens Android Developers (2026) vermindert de juiste keuze van Keyboard Type het aantal toetsaanslagen bij invoer met 20–40% in vergelijking met het standaard teksttoetsenbord.

Belangrijkste punten

  • Keyboard Type — toetsenbordmodus bepaald door het attribuut android:inputType in Android.
  • Belangrijkste typen — text, number, phone, email, textPassword, datetime voor verschillende invoerscenario's.
  • Invoeroptimalisatie — het juiste toetsenbordtype versnelt het invullen van formulieren met 20–40%.
  • Combinatie van vlaggen — inputType combineert de invoerklasse en modificatoren (multiline, autocorrectie).
  • IME options — het attribuut imeOptions beheert de actieknop op het toetsenbord (Done, Search, Next).

Wat is Keyboard Type in Android

Keyboard Type wordt bepaald door de waarde van het attribuut android:inputType in XML of door de programmatische aanroep setInputType() in code. InputType is een bitmasker, waarbij de invoerklasse (klasse) wordt gecombineerd met modificatorvlaggen. Basisklassen: TYPE_CLASS_TEXT voor tekst, TYPE_CLASS_NUMBER voor getallen, TYPE_CLASS_PHONE voor telefoons, TYPE_CLASS_DATETIME voor datums en tijden.

Elk Keyboard Type beïnvloedt drie aspecten: de lay-out van het virtuele toetsenbord (welke tekens zichtbaar zijn op het hoofdscherm), filtering van ingevoerde tekens (welke tekens zijn toegestaan) en het gedrag van autocorrectie/automatisch aanvullen. Het number-toetsenbord toont bijvoorbeeld alleen cijfers en de decimale scheidingsteken, en toont geen letters, zelfs niet als de gebruiker van modus wisselt. Volgens Android Developers Documentation (2026) maakt het combineren van klassen met vlaggen het mogelijk zeer gespecialiseerde modi te creëren: multiline-tekst met autocorrectie, getal met drijvende komma, wachtwoord met de mogelijkheid tot automatisch aanvullen.

Het is belangrijk te begrijpen dat Keyboard Type een aanbeveling is voor het invoersysteem (IME). Sommige toetsenborden van derden (Gboard, SwiftKey) kunnen het opgegeven type gedeeltelijk negeren als de gebruiker eigen voorkeuren heeft geconfigureerd. De meeste standaard Android-toetsenborden en Google Gboard volgen echter strikt het opgegeven invoertype.

kotlin
// Programmatische configuratie van toetsenbordtype
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — standaard teksttoetsenbord

TYPE_CLASS_TEXT — de basisklasse voor tekstinvoer. Activeert het standaard QWERTY-toetsenbord met letters, cijfers en symbolen. De klasse Text heeft het grootste aantal modificatoren die het gedrag verfijnen: TYPE_TEXT_FLAG_CAP_SENTENCES (automatische hoofdletter aan het begin van een zin), TYPE_TEXT_FLAG_AUTO_CORRECT (autocorrectie), TYPE_TEXT_FLAG_MULTI_LINE (multilinemodus), TYPE_TEXT_FLAG_NO_SUGGESTIONS (uitschakelen van suggesties).

Modificatoren van het teksttoetsenbord kunnen worden gecombineerd om een nauwkeurige configuratie te creëren: bijvoorbeeld text|textCapSentences|textAutoCorrect is geschikt voor een opmerkingeninvoerveld waar automatische hoofdletter en correctie van typefouten nodig zijn. Terwijl text|textNoSuggesties wordt gebruikt voor het invoeren van code of speciale termen, waar autocorrectie schadelijk kan zijn.

Volgens UX Stack Exchange (2025) versnelt een teksttoetsenbord met ingeschakelde autocorrectie de invoer met 15–25% voor de gemiddelde gebruiker, maar voor technische termen (code, URL, email) wordt aanbevolen autocorrectie uit te schakelen, omdat het vaak correcte termen vervangt door onjuiste.

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

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

Number — numeriek toetsenbord

TYPE_CLASS_NUMBER activeert het numerieke toetsenbord, dat alleen cijfers, de decimale scheidingsteken en het minteken toont. Dit type wordt gebruikt voor invoervelden voor hoeveelheid, prijzen, leeftijd, codes en andere numerieke gegevens. Het numerieke toetsenbord neemt minder ruimte in op het scherm dan het teksttoetsenbord en voorkomt per ongeluk invoeren van letters.

Number heeft drie modificatoren: TYPE_NUMBER_FLAG_DECIMAL voegt de decimale punt/komma toe, TYPE_NUMBER_FLAG_SIGNED voegt het minteken toe voor negatieve getallen, TYPE_NUMBER_VARIATION_PASSWORD — voor PIN-codes, waar cijfers worden weergegeven als verborgen symbolen. De combinatie number|numberDecimal|numberSigned creëert een volledig veld voor het invoeren van getallen met drijvende komma van elk teken.

  • number — positieve gehele getallen (leeftijd, aantal producten).
  • numberDecimal — getallen met een decimaal deel (prijzen, gewicht, lengte).
  • numberSigned — getallen met teken (temperatuur, coördinaten).
  • numberPassword — verborgen invoer van cijfers voor PIN-codes.
kotlin
// Numerieke invoer met decimaal scheidingsteken
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// Gecontroleerd ingevoerd getal
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone en Email — gespecialiseerde toetsenborden

TYPE_CLASS_PHONE activeert het telefoontoetsenbord, dat cijfers en symbolen toont die kenmerkend zijn voor telefoonnummers: +, #, *, (, ). In tegenstelling tot het number-toetsenbord toont phone ook de letterlay-out in een extra modus, omdat telefoonnummers letters kunnen bevatten (bijvoorbeeld 1-800-FLOWERS). De klasse phone heeft geen extra vlaggen, maar ondersteunt TYPE_TEXT_VARIATION_PHONE_ETC voor het invoeren van interne nummers.

TYPE_TEXT_VARIATION_EMAIL_ADDRESS activeert het email-toetsenbord, waarop het @-teken en de punt zich op het hoofdscherm bevinden, en veelgebruikte domeinextensies (.com, .net, .org) zijn beschikbaar. Gboard toont extra knoppen met populaire domeinen bij het invoeren na @. Het email-toetsenbord schakelt automatisch autocorrectie uit, omdat emailadressen niet-standaard combinaties van tekens kunnen bevatten.

Volgens Google Material Design Guidelines (2025) wordt voor telefoonvelden aanbevolen ook het attribuut android:digits op te geven, dat de set toegestane tekens beperkt. Voor emailvelden is het ook belangrijk om autofillHints="email" op te geven voor ondersteuning van automatisch aanvullen door de wachtwoordbeheerder en Google Autofill.

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 — toetsenbord voor wachtwoorden

TYPE_TEXT_VARIATION_PASSWORD en TYPE_NUMBER_VARIATION_PASSWORD — zijn invoermodi voor vertrouwelijke gegevens. Bij het instellen van textPassword worden ingevoerde tekens weergegeven als punten of sterretjes (afhankelijk van de Android-versie en het toetsenbord). Het toetsenbord schakelt in deze modus autocorrectie en het opslaan van ingevoerde woorden in het gebruikerswoordenboek uit, waardoor lekkage van het wachtwoord via voorspellende invoerfuncties wordt voorkomen.

Password toetsenbord schakelt ook de mogelijkheid uit om een screenshot van de veldinhoud te maken (vlag FLAG_SECURE), hoewel dit gedrag afhangt van de implementatie van het specifieke toetsenbord. Vanaf Android 8.0 (API 26) ondersteunen wachtwoordtoetsenborden automatisch aanvullen via wachtwoordbeheerders, als het attribuut importantForAutofill="yes" is ingesteld.

Volgens Android Security Recommendations (2025) wordt voor wachtwoordvelden ook aanbevolen: maxLength instellen om zeer lange wachtwoorden te voorkomen (die een aanval op de database kunnen zijn), gebruik van inputType="textPassword" samen met TextInputLayout en endIconMode="password_toggle", zodat de gebruiker het ingevoerde wachtwoord kan controleren voordat het formulier wordt verzonden.

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 configureren in code

Programmatische configuratie van Keyboard Type maakt het mogelijk de toetsenbordmodus dynamisch te wijzigen afhankelijk van de context of gebruikersinvoer. Bijvoorbeeld bij het wijzigen van het veldtype (tekst/getal/datum) of bij het wijzigen van de locale. De methode setInputType() accepteert een bitmasker InputType en werkt het toetsenbord onmiddellijk bij als het veld in focus is.

Dynamisch wijzigen van type

kotlin
// Schakelen tussen tekst en numerieke invoer
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)
}

Huidige type controleren

kotlin
// Controleer of veld numeriek is
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// Controleer of autocorrectie is ingeschakeld
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

Veelgestelde vragen

Wat gebeurt er als ik Keyboard Type niet opgeef?

Als inputType niet is opgegeven, gebruikt EditText standaard TYPE_CLASS_TEXT met de vlag TYPE_TEXT_FLAG_MULTI_LINE. Dit betekent een standaard QWERTY-toetsenbord en multiline-invoer. Voor de meeste velden wordt aanbevolen inputType expliciet op te geven om correct toetsenbordgedrag en filtering van tekens te garanderen.

Hoe maak ik een toetsenbord met een „Done"-knop in plaats van „Enter"?

Gebruik het attribuut android:imeOptions="actionDone" op EditText. Dit vervangt de Enter-knop door een Done-knop. Andere opties: actionSearch (vergrootglas), actionNext (pijl rechts), actionSend (verzenden). Implementeer de afhandeling van het indrukken via OnEditorActionListener in code.

Kan ik de trilling van het toetsenbord voor een veld uitschakelen?

U kunt de trilling niet uitschakelen voor een specifiek veld — dit is een systeeminstelling die door de gebruiker wordt beheerd in de toetsenbordinstellingen. U kunt echter volledig voorkomen dat het toetsenbord verschijnt door op EditText het attribuut android:focusable="false" in te stellen of de weergave te annuleren via dispatchTouchEvent.

Hoe maak ik een alleen-lezen veld met de mogelijkheid om tekst te kopiëren?

Stel android:inputType="none" in of roep programmatisch editText.setKeyListener(null) aan. Het veld toont de tekst, maar het toetsenbord verschijnt niet bij focus. De gebruiker kan de tekst selecteren en kopiëren, maar niet wijzigen. Alternatief — gebruik TextView met textIsSelectable="true".

Waarom verandert het toetsenbord niet na setInputType()?

Na het aanroepen van setInputType() moet u het toetsenbord opnieuw tonen, omdat het systeem de IME mogelijk niet automatisch bijwerkt. Roep InputMethodManager.restartInput(view) aan voor een geforceerde update. Als het veld niet in focus is, roep dan eerst requestFocus() aan en vervolgens restartInput.

Samenvatting

  • Keyboard Type bepaalt de lay-out, filtering en het gedrag van het toetsenbord voor een Android-invoerveld.
  • text — standaard QWERTY-toetsenbord met modificatoren voor autocorrectie, hoofdletters en multiline.
  • number — numeriek toetsenbord voor gehele en gebroken getallen met optie signed en decimal.
  • phone — telefoontoetsenbord met cijfers, +, #, * en ondersteuning voor letters in nummers.
  • email — toetsenbord met @, punt en snelle toegang tot domeinextensies.
  • textPassword — verborgen invoer met uitschakeling van autocorrectie en woordenboekopslag.
  • imeOptions configureert de actieknop op het toetsenbord: Done, Search, Next, Send.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook