Keyboard Type — ano ito, mga uri ng keyboard at pagsasaayos ng input sa Android

May-akda: IT Sectr Nai-publish: 2026-07-07 Oras ng pagbabasa: 9 min

Keyboard Type — ay ang configuration ng virtual keyboard sa Android na tumutukoy sa set ng mga ipinapakitang character at layout para sa isang partikular na input field. Sinusuportahan ng Android ang maraming preset na uri: text (standard text), number (numeric), phone (telepono), email (may simbolong @), textPassword (para sa mga password), datetime at iba pa. Ang bawat uri ay nag-o-optimize ng input interface para sa isang partikular na gawain — halimbawa, ang email keyboard ay nagpapakita ng simbolong @ at tuldok sa pangunahing screen. Ayon sa datos ng Android Developers (2026), ang tamang pagpili ng Keyboard Type ay nagbabawas ng bilang ng mga pagpindot sa input ng 20–40% kumpara sa standard text keyboard.

Mga pangunahing punto

  • Keyboard Type — mode ng keyboard na tinutukoy ng attribute na android:inputType sa Android.
  • Pangunahing uri — text, number, phone, email, textPassword, datetime para sa iba't ibang senaryo ng input.
  • Pag-optimize ng input — ang tamang uri ng keyboard ay nagpapabilis ng pagpuno ng form ng 20–40%.
  • Kombinasyon ng flag — pinagsasama ng inputType ang klase ng input at mga modifier (multiline, autocorrect).
  • IME options — ang attribute na imeOptions ay namamahala sa action button sa keyboard (Done, Search, Next).

Ano ang Keyboard Type sa Android

Keyboard Type ay tinutukoy ng halaga ng attribute na android:inputType sa XML o programmatic na tawag na setInputType() sa code. Ang InputType ay isang bit mask, kung saan ang klase ng input (class) ay pinagsama sa mga flag na modifier. Mga pangunahing klase: TYPE_CLASS_TEXT para sa text, TYPE_CLASS_NUMBER para sa mga numero, TYPE_CLASS_PHONE para sa mga telepono, TYPE_CLASS_DATETIME para sa mga petsa at oras.

Ang bawat Keyboard Type ay nakakaapekto sa tatlong aspeto: layout ng virtual keyboard (kung aling mga character ang nakikita sa pangunahing screen), pagsala ng mga inilagay na character (kung aling mga character ang pinapayagan) at pag-uugali ng autocorrect/autocomplete. Halimbawa, ang number keyboard ay nagpapakita lamang ng mga digit at decimal separator, at hindi nagpapakita ng mga titik, kahit na magpalit ng mode ang user. Ayon sa Android Developers Documentation (2026), ang pagsasama ng mga klase sa mga flag ay nagbibigay-daan sa paglikha ng mga napaka-espesyalisadong mode: multiline text na may autocorrect, floating point number, password na may kakayahang autocomplete.

Mahalagang maunawaan na ang Keyboard Type ay isang rekomendasyon sa input system (IME). Ang ilang third-party na keyboard (Gboard, SwiftKey) ay maaaring bahagyang balewalain ang tinukoy na uri kung ang user ay nag-configure ng sarili niyang mga kagustuhan. Gayunpaman, ang karamihan sa mga standard na Android keyboard at Google Gboard ay mahigpit na sumusunod sa tinukoy na uri ng input.

kotlin
// Programmatic na pagsasaayos ng uri ng keyboard
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — standard text keyboard

TYPE_CLASS_TEXT — ang pangunahing klase para sa text input. Ina-activate nito ang standard na QWERTY keyboard na may mga titik, numero at simbolo. Ang klase ng Text ay may pinakamaraming modifier na nagpapalinaw ng pag-uugali: TYPE_TEXT_FLAG_CAP_SENTENCES (awtomatikong malaking titik sa simula ng pangungusap), TYPE_TEXT_FLAG_AUTO_CORRECT (autocorrect), TYPE_TEXT_FLAG_MULTI_LINE (multiline mode), TYPE_TEXT_FLAG_NO_SUGGESTIONS (pag-disable ng mga mungkahi).

Ang mga modifier ng text keyboard ay maaaring pagsamahin, na lumilikha ng tumpak na configuration: halimbawa, ang text|textCapSentences|textAutoCorrect ay angkop para sa input field ng komento, kung saan kailangan ang awtomatikong malaking titik at pagwawasto ng mga typo. Samantalang ang text|textNoSuggestions ay ginagamit para sa pag-input ng code o mga espesyal na termino, kung saan ang autocorrect ay maaaring makasama.

Ayon sa UX Stack Exchange (2025), ang text keyboard na may naka-activate na autocorrect ay nagpapabilis ng input ng 15–25% para sa karaniwang user, ngunit para sa mga teknikal na termino (code, URL, email) inirerekomenda na i-disable ang autocorrect, dahil madalas nitong pinapalitan ang mga tamang termino ng mga mali.

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

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

Number — numeric keyboard

TYPE_CLASS_NUMBER ay nag-a-activate ng numeric keyboard, na nagpapakita lamang ng mga digit, decimal separator at minus sign. Ang uri na ito ay ginagamit para sa mga input field ng dami, presyo, edad, code at iba pang numerikong datos. Ang numeric keyboard ay kumukuha ng mas kaunting espasyo sa screen kaysa sa text keyboard at pinipigilan ang aksidenteng pag-input ng mga titik.

Number ay may tatlong modifier: TYPE_NUMBER_FLAG_DECIMAL ay nagdaragdag ng decimal point/comma, TYPE_NUMBER_FLAG_SIGNED ay nagdaragdag ng minus sign para sa mga negatibong numero, TYPE_NUMBER_VARIATION_PASSWORD — para sa mga PIN code, kung saan ang mga digit ay ipinapakita bilang mga nakatagong simbolo. Ang kombinasyong number|numberDecimal|numberSigned ay lumilikha ng kumpletong field para sa pag-input ng mga floating point number ng anumang sign.

  • number — positive whole numbers (edad, dami ng produkto).
  • numberDecimal — mga numero na may decimal na bahagi (presyo, timbang, taas).
  • numberSigned — mga numero na may sign (temperatura, coordinates).
  • numberPassword — nakatagong pag-input ng mga digit para sa mga PIN code.
kotlin
// Numeric input na may decimal point
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// Suriin ang inilagay na numero
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone at Email — mga espesyalisadong keyboard

TYPE_CLASS_PHONE ay nag-a-activate ng phone keyboard, na nagpapakita ng mga digit at simbolo na katangian ng mga numero ng telepono: +, #, *, (, ). Hindi tulad ng number keyboard, ang phone ay nagpapakita rin ng layout ng titik sa karagdagang mode, dahil ang mga numero ng telepono ay maaaring maglaman ng mga titik (halimbawa, 1-800-FLOWERS). Ang klase ng phone ay walang karagdagang flag, ngunit sumusuporta sa TYPE_TEXT_VARIATION_PHONE_ETC para sa pag-input ng mga extension number.

TYPE_TEXT_VARIATION_EMAIL_ADDRESS ay nag-a-activate ng email keyboard, kung saan ang simbolong @ at tuldok ay nasa pangunahing screen, at ang mga madalas na domain extension (.com, .net, .org) ay available din. Ang Gboard ay nagpapakita rin ng mga button na may mga sikat na domain sa pag-input pagkatapos ng @. Ang email keyboard ay awtomatikong nagdi-disable ng autocorrect, dahil ang mga email address ay maaaring maglaman ng hindi standard na kombinasyon ng mga character.

Ayon sa Google Material Design Guidelines (2025), para sa mga phone field ay inirerekomenda na ring tukuyin ang attribute na android:digits, na naglilimita sa set ng mga pinapayagang character. Para sa mga email field, mahalaga ring tukuyin ang autofillHints="email" para sa suporta ng autocomplete mula sa password manager at 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 — keyboard para sa mga password

TYPE_TEXT_VARIATION_PASSWORD at TYPE_NUMBER_VARIATION_PASSWORD — ay mga mode ng input para sa kumpidensyal na datos. Kapag nagtakda ng textPassword, ang mga inilagay na character ay ipinapakita bilang mga tuldok o asterisk (depende sa bersyon ng Android at keyboard). Ang keyboard sa mode na ito ay nagdi-disable ng autocorrect at pag-save ng mga inilagay na salita sa diksyunaryo ng user, na pumipigil sa pagtagas ng password sa pamamagitan ng predictive input functions.

Ang Password keyboard ay nagdi-disable din ng kakayahang kumuha ng screenshot ng nilalaman ng field (flag FLAG_SECURE), bagaman ang pag-uugali na ito ay depende sa implementasyon ng partikular na keyboard. Mula sa Android 8.0 (API 26), ang mga password keyboard ay sumusuporta sa autocomplete sa pamamagitan ng mga password manager, kung ang attribute na importantForAutofill="yes" ay nakatakda.

Ayon sa Android Security Recommendations (2025), para sa mga password field ay inirerekomenda rin: pagtakda ng maxLength upang maiwasan ang napakahabang mga password (na maaaring maging atake sa database), paggamit ng inputType="textPassword" kasama ng TextInputLayout at endIconMode="password_toggle", upang masuri ng user ang inilagay na password bago ipadala ang form.

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>

Pagsasaayos ng Keyboard Type sa code

Ang programmatic na pagsasaayos ng Keyboard Type ay nagpapahintulot ng dynamic na pagbabago ng mode ng keyboard depende sa konteksto o input ng user. Halimbawa, kapag nagpapalit ng uri ng field (text/numero/petsa) o kapag nagpapalit ng locale. Ang setInputType() na pamamaraan ay tumatanggap ng bit mask na InputType at agad na ina-update ang keyboard kung ang field ay naka-focus.

Dynamic na pagpapalit ng uri

kotlin
// Paglipat sa pagitan ng text at numeric input
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)
}

Pagsuri ng kasalukuyang uri

kotlin
// Suriin kung ang field ay numeric
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// Suriin kung ang autocorrect ay naka-enable
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

Mga madalas itanong

Anong mangyayari kung hindi ko tinukoy ang Keyboard Type?

Kung ang inputType ay hindi tinukoy, ang EditText ay default na gumagamit ng TYPE_CLASS_TEXT na may flag na TYPE_TEXT_FLAG_MULTI_LINE. Ito ay nangangahulugang standard na QWERTY keyboard at multiline input. Para sa karamihan ng mga field, inirerekomenda na tahasang tukuyin ang inputType upang matiyak ang tamang pag-uugali ng keyboard at pagsala ng mga character.

Paano gumawa ng keyboard na may "Done" na button sa halip na "Enter"?

Gamitin ang attribute na android:imeOptions="actionDone" sa EditText. Papalitan nito ang Enter button ng Done button. Iba pang opsyon: actionSearch (magnifying glass), actionNext (kanang arrow), actionSend (ipadala). Ipatupad ang paghawak ng pagpindot sa pamamagitan ng OnEditorActionListener sa code.

Maaari bang i-off ang vibration ng keyboard para sa isang field?

Hindi maaaring i-off ang vibration para sa isang partikular na field — ito ay isang system setting na pinamamahalaan ng user sa mga setting ng keyboard. Gayunpaman, maaari mong ganap na pigilan ang paglitaw ng keyboard sa pamamagitan ng pagtakda ng attribute na android:focusable="false" sa EditText o pagkansela ng pagpapakita sa pamamagitan ng dispatchTouchEvent.

Paano gumawa ng read-only field ngunit may kakayahang kopyahin ang text?

Itakda ang android:inputType="none" o programmatically tawagan ang editText.setKeyListener(null). Ang field ay magpapakita ng text, ngunit hindi lilitaw ang keyboard sa focus. Ang user ay maaaring pumili at kumopya ng text, ngunit hindi ito mababago. Alternatibo — gumamit ng TextView na may textIsSelectable="true".

Bakit hindi nagbabago ang keyboard pagkatapos ng setInputType()?

Pagkatapos tawagan ang setInputType(), kailangan mong ipakita muli ang keyboard, dahil maaaring hindi awtomatikong i-update ng system ang IME. Tawagan ang InputMethodManager.restartInput(view) para sa sapilitang pag-update. Kung ang field ay hindi naka-focus, tawagan muna ang requestFocus(), pagkatapos ay restartInput.

Buod

  • Keyboard Type ay tumutukoy sa layout, pagsala at pag-uugali ng keyboard para sa isang Android input field.
  • text — standard na QWERTY keyboard na may mga modifier ng autocorrect, malalaking titik at multiline.
  • number — numeric keyboard para sa whole at fractional na numero na may signed at decimal na opsyon.
  • phone — telepono keyboard na may mga digit, +, #, * at suporta para sa mga letrang numero.
  • email — keyboard na may @, tuldok at mabilis na access sa mga domain extension.
  • textPassword — nakatagong input na may pag-disable ng autocorrect at pag-save sa diksyunaryo.
  • imeOptions ay nagko-configure ng action button sa keyboard: Done, Search, Next, Send.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din