Keyboard Type — τι είναι, τύποι πληκτρολογίου και ρύθμιση εισόδου στο Android

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-07 Χρόνος ανάγνωσης: 9 λεπ

Keyboard Type — είναι η διαμόρφωση του εικονικού πληκτρολογίου στο Android που καθορίζει το σύνολο των εμφανιζόμενων χαρακτήρων και τη διάταξη για ένα συγκεκριμένο πεδίο εισόδου. Το Android υποστηρίζει πολλούς προκαθορισμένους τύπους: text (τυπικό κείμενο), number (αριθμητικό), phone (τηλεφωνικό), email (με σύμβολο @), textPassword (για κωδικούς πρόσβασης), datetime και άλλους. Κάθε τύπος βελτιστοποιεί τη διεπαφή εισόδου για μια συγκεκριμένη εργασία — για παράδειγμα, το πληκτρολόγιο email εμφανίζει το σύμβολο @ και την τελεία στην κύρια οθόνη. Σύμφωνα με τα δεδομένα του Android Developers (2026), η σωστή επιλογή Keyboard Type μειώνει τον αριθμό των πατημάτων κατά την εισαγωγή κατά 20–40% σε σύγκριση με το τυπικό πληκτρολόγιο κειμένου.

Βασικά σημεία

  • Keyboard Type — λειτουργία πληκτρολογίου που καθορίζεται από το χαρακτηριστικό android:inputType στο Android.
  • Κύριοι τύποι — text, number, phone, email, textPassword, datetime για διαφορετικά σενάρια εισόδου.
  • Βελτιστοποίηση εισόδου — ο σωστός τύπος πληκτρολογίου επιταχύνει τη συμπλήρωση φορμών κατά 20–40%.
  • Συνδυασμός σημαιών — το inputType συνδυάζει την κλάση εισόδου και τους τροποποιητές (πολλαπλών γραμμών, αυτόματη διόρθωση).
  • IME options — το χαρακτηριστικό imeOptions διαχειρίζεται το κουμπί ενέργειας στο πληκτρολόγιο (Done, Search, Next).

Τι είναι το Keyboard Type στο Android

Keyboard Type καθορίζεται από την τιμή του χαρακτηριστικού android:inputType σε XML ή από την προγραμματική κλήση setInputType() σε κώδικα. Το InputType είναι μια μάσκα bit, όπου η κλάση εισόδου (κλάση) συνδυάζεται με σημαίες-τροποποιητές. Βασικές κλάσεις: TYPE_CLASS_TEXT για κείμενο, TYPE_CLASS_NUMBER για αριθμούς, TYPE_CLASS_PHONE για τηλέφωνα, TYPE_CLASS_DATETIME για ημερομηνίες και ώρα.

Κάθε Keyboard Type επηρεάζει τρεις πτυχές: τη διάταξη του εικονικού πληκτρολογίου (ποιοι χαρακτήρες είναι ορατοί στην κύρια οθόνη), το φιλτράρισμα των εισαγόμενων χαρακτήρων (ποιοι χαρακτήρες επιτρέπονται) και τη συμπεριφορά αυτόματης διόρθωσης/αυτόματης συμπλήρωσης. Για παράδειγμα, το πληκτρολόγιο number εμφανίζει μόνο ψηφία και το δεκαδικό διαχωριστικό, και δεν εμφανίζει γράμματα, ακόμα κι αν ο χρήστης αλλάξει λειτουργία. Σύμφωνα με το Android Developers Documentation (2026), ο συνδυασμός κλάσεων με σημαίες επιτρέπει τη δημιουργία ιδιαίτερα εξειδικευμένων λειτουργιών: κείμενο πολλαπλών γραμμών με αυτόματη διόρθωση, αριθμός κινητής υποδιαστολής, κωδικός πρόσβασης με δυνατότητα αυτόματης συμπλήρωσης.

Είναι σημαντικό να κατανοήσετε ότι το Keyboard Type είναι μια σύσταση προς το σύστημα εισόδου (IME). Ορισμένα πληκτρολόγια τρίτων (Gboard, SwiftKey) μπορεί να αγνοήσουν εν μέρει τον καθορισμένο τύπο, εάν ο χρήστης έχει διαμορφώσει τις δικές του προτιμήσεις. Ωστόσο, τα περισσότερα τυπικά πληκτρολόγια Android και το Google Gboard ακολουθούν αυστηρά τον καθορισμένο τύπο εισόδου.

kotlin
// Προγραμματική ρύθμιση τύπου πληκτρολογίου
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — τυπικό πληκτρολόγιο κειμένου

TYPE_CLASS_TEXT — η βασική κλάση για εισαγωγή κειμένου. Ενεργοποιεί το τυπικό πληκτρολόγιο QWERTY με γράμματα, αριθμούς και σύμβολα. Η κλάση Text έχει τον μεγαλύτερο αριθμό τροποποιητών που προσδιορίζουν τη συμπεριφορά: TYPE_TEXT_FLAG_CAP_SENTENCES (αυτόματο κεφαλαίο γράμμα στην αρχή της πρότασης), TYPE_TEXT_FLAG_AUTO_CORRECT (αυτόματη διόρθωση), TYPE_TEXT_FLAG_MULTI_LINE (λειτουργία πολλαπλών γραμμών), TYPE_TEXT_FLAG_NO_SUGGESTIONS (απενεργοποίηση προτάσεων).

Οι τροποποιητές του πληκτρολογίου κειμένου μπορούν να συνδυαστούν, δημιουργώντας ακριβή διαμόρφωση: για παράδειγμα, το text|textCapSentences|textAutoCorrect είναι κατάλληλο για πεδίο εισαγωγής σχολίου, όπου χρειάζεται αυτόματο κεφαλαίο γράμμα και διόρθωση τυπογραφικών λαθών. Ενώ το text|textNoSuggestions χρησιμοποιείται για εισαγωγή κώδικα ή ειδικών όρων, όπου η αυτόματη διόρθωση μπορεί να είναι επιβλαβής.

Σύμφωνα με το UX Stack Exchange (2025), το πληκτρολόγιο κειμένου με ενεργοποιημένη αυτόματη διόρθωση επιταχύνει την εισαγωγή κατά 15–25% για τον μέσο χρήστη, αλλά για τεχνικούς όρους (κώδικας, URL, email) συνιστάται η απενεργοποίηση της αυτόματης διόρθωσης, καθώς συχνά αντικαθιστά σωστούς όρους με λανθασμένους.

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

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

Number — αριθμητικό πληκτρολόγιο

TYPE_CLASS_NUMBER ενεργοποιεί το αριθμητικό πληκτρολόγιο, το οποίο εμφανίζει μόνο ψηφία, δεκαδικό διαχωριστικό και σύμβολο μείον. Αυτός ο τύπος χρησιμοποιείται για πεδία εισαγωγής ποσότητας, τιμών, ηλικίας, κωδικών και άλλων αριθμητικών δεδομένων. Το αριθμητικό πληκτρολόγιο καταλαμβάνει λιγότερο χώρο στην οθόνη από το πληκτρολόγιο κειμένου και αποκλείει την τυχαία εισαγωγή γραμμάτων.

Το Number έχει τρεις τροποποιητές: TYPE_NUMBER_FLAG_DECIMAL προσθέτει δεκαδική τελεία/κόμμα, TYPE_NUMBER_FLAG_SIGNED προσθέτει σύμβολο μείον για αρνητικούς αριθμούς, TYPE_NUMBER_VARIATION_PASSWORD — για PIN κωδικούς, όπου τα ψηφία εμφανίζονται ως κρυφά σύμβολα. Ο συνδυασμός number|numberDecimal|numberSigned δημιουργεί ένα πλήρες πεδίο για εισαγωγή αριθμών κινητής υποδιαστολής οποιουδήποτε προσήμου.

  • number — θετικοί ακέραιοι αριθμοί (ηλικία, ποσότητα προϊόντων).
  • numberDecimal — αριθμοί με δεκαδικό μέρος (τιμές, βάρος, ύψος).
  • numberSigned — αριθμοί με πρόσημο (θερμοκρασία, συντεταγμένες).
  • numberPassword — κρυφή εισαγωγή ψηφίων για PIN κωδικούς.
kotlin
// Αριθμητική εισαγωγή με δεκαδικό σημείο
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// Ελέγξτε τον εισαγόμενο αριθμό
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone και Email — εξειδικευμένα πληκτρολόγια

TYPE_CLASS_PHONE ενεργοποιεί το τηλεφωνικό πληκτρολόγιο, το οποίο εμφανίζει ψηφία και σύμβολα χαρακτηριστικά για αριθμούς τηλεφώνου: +, #, *, (, ). Σε αντίθεση με το πληκτρολόγιο number, το phone εμφανίζει επίσης διάταξη γραμμάτων σε πρόσθετη λειτουργία, καθώς οι αριθμοί τηλεφώνου μπορεί να περιέχουν γράμματα (για παράδειγμα, 1-800-FLOWERS). Η κλάση phone δεν έχει πρόσθετες σημαίες, αλλά υποστηρίζει TYPE_TEXT_VARIATION_PHONE_ETC για εισαγωγή εσωτερικών αριθμών.

TYPE_TEXT_VARIATION_EMAIL_ADDRESS ενεργοποιεί το πληκτρολόγιο email, όπου το σύμβολο @ και η τελεία βρίσκονται στην κύρια οθόνη, και οι συχνές επεκτάσεις domain (.com, .net, .org) είναι επίσης διαθέσιμες. Το Gboard εμφανίζει επιπλέον κουμπιά με δημοφιλή domains κατά την εισαγωγή μετά το @. Το πληκτρολόγιο email απενεργοποιεί αυτόματα την αυτόματη διόρθωση, καθώς οι διευθύνσεις email μπορεί να περιέχουν μη τυπικούς συνδυασμούς χαρακτήρων.

Σύμφωνα με το Google Material Design Guidelines (2025), για πεδία τηλεφώνου συνιστάται επίσης να καθορίζετε το χαρακτηριστικό android:digits, το οποίο περιορίζει το σύνολο των επιτρεπόμενων χαρακτήρων. Για πεδία email είναι επίσης σημαντικό να καθορίζετε autofillHints="email" για υποστήριξη αυτόματης συμπλήρωσης από τον διαχειριστή κωδικών πρόσβασης και το 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 — πληκτρολόγιο για κωδικούς πρόσβασης

TYPE_TEXT_VARIATION_PASSWORD και TYPE_NUMBER_VARIATION_PASSWORD — είναι λειτουργίες εισόδου για εμπιστευτικά δεδομένα. Κατά τη ρύθμιση textPassword, οι εισαγόμενοι χαρακτήρες εμφανίζονται ως τελείες ή αστερίσκοι (ανάλογα με την έκδοση Android και το πληκτρολόγιο). Το πληκτρολόγιο σε αυτή τη λειτουργία απενεργοποιεί την αυτόματη διόρθωση και την αποθήκευση εισαγόμενων λέξεων στο λεξικό χρήστη, αποτρέποντας τη διαρροή κωδικού πρόσβασης μέσω λειτουργιών προγνωστικής εισαγωγής.

Το Password πληκτρολόγιο απενεργοποιεί επίσης τη δυνατότητα λήψης στιγμιότυπου οθόνης του περιεχομένου του πεδίου (σημαία FLAG_SECURE), αν και αυτή η συμπεριφορά εξαρτάται από την υλοποίηση του συγκεκριμένου πληκτρολογίου. Από το Android 8.0 (API 26), τα πληκτρολόγια password υποστηρίζουν αυτόματη συμπλήρωση μέσω διαχειριστών κωδικών πρόσβασης, εάν έχει οριστεί το χαρακτηριστικό importantForAutofill="yes".

Σύμφωνα με το Android Security Recommendations (2025), για πεδία κωδικού πρόσβασης συνιστάται επίσης: ρύθμιση maxLength για αποτροπή πολύ μεγάλων κωδικών πρόσβασης (που μπορεί να αποτελούν επίθεση στη βάση δεδομένων), χρήση inputType="textPassword" μαζί με TextInputLayout και endIconMode="password_toggle", ώστε ο χρήστης να μπορεί να ελέγξει τον κωδικό πρόσβασης πριν από την υποβολή της φόρμας.

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 σε κώδικα

Η προγραμματική ρύθμιση του Keyboard Type επιτρέπει τη δυναμική αλλαγή της λειτουργίας πληκτρολογίου ανάλογα με το περιβάλλον ή την είσοδο του χρήστη. Για παράδειγμα, κατά την εναλλαγή τύπου πεδίου (κείμενο/αριθμός/ημερομηνία) ή κατά την αλλαγή locale. Η μέθοδος setInputType() δέχεται μια μάσκα bit InputType και ενημερώνει αμέσως το πληκτρολόγιο, εάν το πεδίο είναι σε εστίαση.

Δυναμική εναλλαγή τύπου

kotlin
// Εναλλαγή μεταξύ εισαγωγής κειμένου και αριθμού
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)
}

Έλεγχος τρέχοντος τύπου

kotlin
// Ελέγξτε αν το πεδίο είναι αριθμητικό
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// Ελέγξτε αν η αυτόματη διόρθωση είναι ενεργοποιημένη
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

Συχνές ερωτήσεις

Τι θα συμβεί αν δεν καθορίσω το Keyboard Type;

Εάν το inputType δεν έχει καθοριστεί, το EditText από προεπιλογή χρησιμοποιεί TYPE_CLASS_TEXT με τη σημαία TYPE_TEXT_FLAG_MULTI_LINE. Αυτό σημαίνει τυπικό πληκτρολόγιο QWERTY και είσοδο πολλαπλών γραμμών. Για τα περισσότερα πεδία συνιστάται να καθορίζετε ρητά το inputType για να εξασφαλίσετε σωστή συμπεριφορά πληκτρολογίου και φιλτράρισμα χαρακτήρων.

Πώς να φτιάξω πληκτρολόγιο με κουμπί "Done" αντί για "Enter";

Χρησιμοποιήστε το χαρακτηριστικό android:imeOptions="actionDone" στο EditText. Αυτό θα αντικαταστήσει το κουμπί Enter με το κουμπί Done. Άλλες επιλογές: actionSearch (μεγεθυντικός φακός), actionNext (δεξί βέλος), actionSend (αποστολή). Υλοποιήστε τον χειρισμό πατήματος μέσω OnEditorActionListener στον κώδικα.

Μπορώ να απενεργοποιήσω την δόνηση του πληκτρολογίου για ένα πεδίο;

Δεν μπορείτε να απενεργοποιήσετε την δόνηση για ένα συγκεκριμένο πεδίο — αυτή είναι μια ρύθμιση συστήματος που διαχειρίζεται ο χρήστης στις ρυθμίσεις πληκτρολογίου. Ωστόσο, μπορείτε να αποτρέψετε εντελώς την εμφάνιση του πληκτρολογίου, ορίζοντας στο EditText το χαρακτηριστικό android:focusable="false" ή ακυρώνοντας την εμφάνιση μέσω dispatchTouchEvent.

Πώς να φτιάξω ένα πεδίο μόνο για ανάγνωση αλλά με δυνατότητα αντιγραφής κειμένου;

Ορίστε android:inputType="none" ή καλέστε προγραμματικά editText.setKeyListener(null). Το πεδίο θα εμφανίζει κείμενο, αλλά το πληκτρολόγιο δεν θα εμφανίζεται κατά την εστίαση. Ο χρήστης θα μπορεί να επιλέξει και να αντιγράψει κείμενο, αλλά όχι να το τροποποιήσει. Εναλλακτικά — χρησιμοποιήστε TextView με textIsSelectable="true".

Γιατί δεν αλλάζει το πληκτρολόγιο μετά το setInputType();

Μετά την κλήση του setInputType() πρέπει να εμφανίσετε ξανά το πληκτρολόγιο, καθώς το σύστημα μπορεί να μην ενημερώσει αυτόματα το IME. Καλέστε InputMethodManager.restartInput(view) για υποχρεωτική ενημέρωση. Εάν το πεδίο δεν είναι σε εστίαση, καλέστε πρώτα requestFocus(), στη συνέχεια restartInput.

Σύνοψη

  • Keyboard Type καθορίζει τη διάταξη, το φιλτράρισμα και τη συμπεριφορά του πληκτρολογίου για ένα πεδίο εισόδου Android.
  • text — τυπικό πληκτρολόγιο QWERTY με τροποποιητές αυτόματης διόρθωσης, κεφαλαίων γραμμάτων και πολλαπλών γραμμών.
  • number — αριθμητικό πληκτρολόγιο για ακέραιους και δεκαδικούς αριθμούς με επιλογή signed και decimal.
  • phone — τηλεφωνικό πληκτρολόγιο με ψηφία, +, #, * και υποστήριξη για αριθμούς με γράμματα.
  • email — πληκτρολόγιο με @, τελεία και γρήγορη πρόσβαση σε επεκτάσεις domain.
  • textPassword — κρυφή εισαγωγή με απενεργοποίηση αυτόματης διόρθωσης και αποθήκευσης στο λεξικό.
  • imeOptions ρυθμίζει το κουμπί ενέργειας στο πληκτρολόγιο: Done, Search, Next, Send.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης