EditText: τι είναι, χαρακτηριστικά και εργασία με το πεδίο εισαγωγής στο Android

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

EditText — είναι ένα βασικό στοιχείο του Android που προορίζεται για την εισαγωγή και επεξεργασία κειμένου στη διεπαφή χρήστη. Κληρονομεί από το TextView και παρέχει τη δυνατότητα εισαγωγής χαρακτήρων από εικονικό ή φυσικό πληκτρολόγιο. Το EditText υποστηρίζει πολλές λειτουργίες: κείμενο μονής και πολλαπλών γραμμών, κωδικούς πρόσβασης, αριθμούς, διευθύνσεις email και αριθμούς τηλεφώνου. Σύμφωνα με το Android Developers (2026), το EditText χρησιμοποιείται σε περισσότερο από το 90% των εφαρμογών Android για τη δημιουργία φορμών, πεδίων αναζήτησης, συνομιλιών και οθονών εισαγωγής δεδομένων.

Κύρια σημεία

  • EditText — βασικό στοιχείο εισαγωγής κειμένου στο Android, κληρονόμος του TextView.
  • Λειτουργίες εισαγωγής — υποστηρίζει κείμενο, αριθμούς, κωδικούς, email, τηλέφωνο και εισαγωγή πολλαπλών γραμμών.
  • Χαρακτηριστικά XML — ρύθμιση μέσω inputType, maxLines, hint, textColorHint και άλλων παραμέτρων.
  • Ακροατές — TextWatcher για παρακολούθηση αλλαγών και OnEditorActionListener για χειρισμό ενεργειών.
  • Material Design — το TextInputLayout επεκτείνει το EditText με πλωτή ετικέτα και μηνύματα σφάλματος.

Τι είναι το EditText στο Android

EditText — είναι μια κλάση από το πακέτο android.widget που υλοποιεί ένα διαδραστικό πεδίο κειμένου για εισαγωγή δεδομένων από τον χρήστη. Στην ιεραρχία κληρονομικότητας του Android EditText extends TextView, επομένως κληρονομεί όλες τις ιδιότητες μιας ετικέτας κειμένου, συμπεριλαμβανομένης της διαχείρισης γραμματοσειρών, χρωμάτων και στοίχισης. Η κύρια διαφορά μεταξύ EditText και TextView είναι η δυνατότητα επεξεργασίας περιεχομένου — ο χρήστης μπορεί να εισάγει, να διαγράφει και να τροποποιεί κείμενο απευθείας στη διεπαφή.

Κάθε EditText συνδέεται με ένα στιγμιότυπο Editable που αποθηκεύει το εισαγόμενο κείμενο και υποστηρίζει λειτουργίες εισαγωγής, διαγραφής και αντικατάστασης χαρακτήρων. Κατά την εισαγωγή κειμένου, το EditText διαχειρίζεται αυτόματα τη θέση του δρομέα, την επιλογή κειμένου και το ιστορικό αλλαγών για αναίρεση/επανάληψη (undo/redo). Σύμφωνα με τον Android Developers Guide (2026), το EditText υποστηρίζει επίσης αυτόματη συμπλήρωση μέσω της κλάσης AutoCompleteTextView που κληρονομεί από το EditText.

Η αρχιτεκτονική του EditText βασίζεται στον διαχωρισμό μοντέλου (Editable), προβολής (TextView) και ελεγκτή (InputConnection). Κατά τη λήψη εστίασης, το EditText δημιουργεί ένα InputConnection μέσω του οποίου το σύστημα εισαγωγής μεταδίδει χαρακτήρες, πατήματα πλήκτρων και εντολές επεξεργασίας. Αυτός ο μηχανισμός εξασφαλίζει συμβατότητα με οποιεσδήποτε μεθόδους εισαγωγής — από εικονικά πληκτρολόγια έως φυσικά πληκτρολόγια Bluetooth και φωνητική εισαγωγή.

kotlin
val editText = EditText(context).apply {
    hint = "Εισαγάγετε κείμενο"
    inputType = InputType.TYPE_CLASS_TEXT
    maxLines = 1
    setTextColor(Color.parseColor("#000000"))
}

Βασικά χαρακτηριστικά του EditText

EditText παρέχει δεκάδες χαρακτηριστικά για ακριβή ρύθμιση της συμπεριφοράς και της εμφάνισης. Μπορούν να οριστούν τόσο στη διάταξη XML όσο και προγραμματιστικά μέσω Kotlin ή Java. Τα χαρακτηριστικά χωρίζονται σε κατηγορίες: διαχείριση κειμένου, περιορισμοί, οπτική εμφάνιση και αλληλεπίδραση με πληκτρολόγιο.

ΧαρακτηριστικόΠεριγραφήΠαράδειγμα τιμής
android:hintΚείμενο υπόδειξης που εμφανίζεται στο κενό πεδίο„Εισαγάγετε email"
android:inputTypeΛειτουργία εισαγωγής (κείμενο, αριθμός, κωδικός κλπ.)textEmailAddress
android:maxLinesΜέγιστος αριθμός γραμμών3
android:maxLengthΜέγιστο μήκος κειμένου σε χαρακτήρες100
android:textColorHintΧρώμα κειμένου υπόδειξης#999999

Το χαρακτηριστικό android:hint είναι ένα από τα πιο σημαντικά — ενημερώνει τον χρήστη ποια δεδομένα αναμένονται στο πεδίο. Κατά την εισαγωγή κειμένου, το hint εξαφανίζεται αυτόματα. Το hint δεν συμμετέχει στην υποβολή της φόρμας και δεν αποθηκεύεται ως τιμή πεδίου. Το Material Design συνιστά τη χρήση του TextInputLayout με πλωτή ετικέτα αντί για απλό hint για πιο μοντέρνα εμφάνιση.

  • android:selectAllOnFocus — επιλέγει όλο το κείμενο κατά τη λήψη εστίασης (χρήσιμο για πεδία αναζήτησης).
  • android:maxLength — περιορίζει τον αριθμό των εισαγόμενων χαρακτήρων, αποκόπτοντας την υπέρβαση.
  • android:lines — ορίζει σταθερό ύψος πεδίου σε γραμμές (σε αντίθεση με το minLines).
  • android:gravity — στοίχιση κειμένου μέσα στο πεδίο: left, center, top κλπ.
xml
                <!-- EditText in XML layout -->
@+id/etEmail
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:importantForAutofill="yes" />

Λειτουργίες εισαγωγής και inputType

Το χαρακτηριστικό inputType καθορίζει ποιος τύπος πληκτρολογίου θα εμφανιστεί στον χρήστη και ποιοι χαρακτήρες επιτρέπονται για εισαγωγή. Είναι μια μάσκα bit όπου η κλάση εισαγωγής (TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_CLASS_PHONE) συνδυάζεται με τροποποιητές.

Κάθε λειτουργία εισαγωγής όχι μόνο αλλάζει τη διάταξη του πληκτρολογίου, αλλά επηρεάζει και την επεξεργασία κειμένου: στην αριθμητική λειτουργία επιτρέπονται μόνο ψηφία και δεκαδικό διαχωριστικό, στη λειτουργία email είναι διαθέσιμο το σύμβολο @ και επεκτάσεις τομέα, και στη λειτουργία τηλεφώνου εμφανίζονται ψηφία και σύμβολα +, #, *. Η σωστή επιλογή inputType έχει κρίσιμη επίδραση στην εμπειρία χρήστη — ένα ακατάλληλο πληκτρολόγιο αναγκάζει τον χρήστη να αλλάζει λειτουργίες, αυξάνοντας τον χρόνο συμπλήρωσης της φόρμας κατά 30–50%.

Σύμφωνα με τις Material Design Guidelines (2025), συνιστάται η χρήση του πιο συγκεκριμένου inputType για κάθε πεδίο: textPassword για κωδικούς, numberDecimal για τιμές, phone για αριθμούς τηλεφώνου, textMultiLine για εισαγωγή πολλαπλών γραμμών. Αυτό επιταχύνει τη συμπλήρωση φορμών και μειώνει τον αριθμό σφαλμάτων εισαγωγής.

kotlin
// Προγραμματιστική ρύθμιση inputType
editText.inputType = InputType.TYPE_CLASS_TEXT or
    InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or
    InputType.TYPE_TEXT_FLAG_AUTO_CORRECT

Ακροατές EditText: TextWatcher και OnEditorActionListener

TextWatcher — είναι μια διεπαφή για την παρακολούθηση αλλαγών κειμένου στο EditText σε πραγματικό χρόνο. Περιέχει τρεις μεθόδους: η beforeTextChanged καλείται πριν από την αλλαγή, η onTextChanged — κατά τη διάρκεια της αλλαγής, η afterTextChanged — μετά την ολοκλήρωση της αλλαγής κειμένου. Το TextWatcher χρησιμοποιείται για επικύρωση εισαγωγής, μέτρηση χαρακτήρων, αναζήτηση και αυτόματη συμπλήρωση.

OnEditorActionListener χειρίζεται ενέργειες του χρήστη στο πληκτρολόγιο: πάτημα του κουμπιού Done (IME_ACTION_DONE), αναζήτηση (IME_ACTION_SEARCH), αποστολή (IME_ACTION_SEND), μετάβαση στο επόμενο πεδίο (IME_ACTION_NEXT) και άλλα. Αυτός ο ακροατής είναι ιδιαίτερα χρήσιμος για την οργάνωση πλοήγησης στη φόρμα — με το πάτημα του Next, η εστίαση μεταβαίνει αυτόματα στο επόμενο πεδίο, και με το πάτημα του Done, το πληκτρολόγιο κρύβεται και η αποστολή εκτελείται.

Σύμφωνα με το Android Developers Blog (2025), η σωστή χρήση του OnEditorActionListener με το χαρακτηριστικό android:imeOptions επιτρέπει τη δημιουργία διαισθητικών φορμών χωρίς επιπλέον κουμπιά αποστολής — ο χρήστης συμπληρώνει τα πεδία και πατάει Done στο πληκτρολόγιο, το οποίο ενεργοποιεί την αποθήκευση ή την αναζήτηση.

kotlin
// TextWatcher για επικύρωση email
editText.addTextChangedListener(object : TextWatcher {
    override fun afterTextChanged(s: Editable?) {
        val isValid = Patterns.EMAIL_ADDRESS.matcher(s).matches()
        editText.error = if (isValid) null else "Invalid email format"
    }
})

// OnEditorActionListener για υποβολή φόρμας
editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        submitForm()
        true
    } else false
}

Παραδείγματα κώδικα με EditText

Ας εξετάσουμε ένα πλήρες παράδειγμα δημιουργίας οθόνης σύνδεσης με χρήση EditText για εισαγωγή email και κωδικού πρόσβασης. Σε αυτό το παράδειγμα παρουσιάζεται η ρύθμιση του inputType, η επικύρωση μέσω TextWatcher και ο χειρισμός του πατήματος του κουμπιού σύνδεσης.

Διάταξη XML της οθόνης σύνδεσης

xml
@+id/etLoginEmail
android:layout_width="match_parent"
android:hint="Email"
android:inputType="textEmailAddress"
android:maxLines="1" />

@+id/etLoginPassword
android:layout_width="match_parent"
android:hint="Password"
android:inputType="textPassword"
android:maxLines="1" />

Προγραμματιστική ρύθμιση του EditText

kotlin
class LoginFragment : Fragment() {
    private lateinit var etEmail: EditText
    private lateinit var etPassword: EditText

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        etEmail = view.findViewById(R.id.etLoginEmail)
        etPassword = view.findViewById(R.id.etLoginPassword)

        etEmail.addTextChangedListener(emailWatcher)
        etPassword.setOnEditorActionListener { _, actionId, _ ->
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                performLogin()
                true
            } else false
        }
    }
}

Στυλ EditText

EditText υποστηρίζει προσαρμογή μέσω χαρακτηριστικών XML, θεμάτων και στυλ. Μπορεί να αλλάξει το χρώμα κειμένου, το χρώμα υπόδειξης, το χρώμα υπογράμμισης (backgroundTint), το στυλ γραμματοσειράς, το μέγεθος κειμένου και πολλά άλλα. Το Material Components παρέχει το θέμα MaterialComponents. EditText με προσαρμοσμένα χαρακτηριστικά, συμπεριλαμβανομένων των boxStrokeColor, boxBackgroundColor και endIconMode.

Για την αλλαγή του χρώματος υπογράμμισης του EditText χρησιμοποιείται το χαρακτηριστικό android:backgroundTint, το οποίο ορίζει το χρώμα για την προεπιλεγμένη κατάσταση και την κατάσταση εστίασης. Στο Material Design, το χρώμα υπογράμμισης διαχειρίζεται μέσω του colorPrimary του θέματος. Για πλήρη προσαρμογή, μπορεί να δημιουργηθεί ένα προσαρμοσμένο drawable για φόντο στον φάκελο res/drawable.

ΣτυλΧαρακτηριστικόΑποτέλεσμα
Χρώμα κειμένουandroid:textColorΑλλάζει το χρώμα του εισαγόμενου κειμένου
Χρώμα hintandroid:textColorHintΑλλάζει το χρώμα του κειμένου υπόδειξης
Υπογράμμισηandroid:backgroundTintΑλλάζει το χρώμα της γραμμής κάτω από το πεδίο
Μέγεθος γραμματοσειράςandroid:textSizeΟρίζει το μέγεθος κειμένου σε sp
Γραμματοσειράandroid:fontFamilyΣυνδέει προσαρμοσμένη γραμματοσειρά

Για τη δημιουργία ενιαίου στυλ όλων των EditText στην εφαρμογή, συνιστάται ο ορισμός ενός καθολικού στυλ στο θέμα. Το Material Design προσφέρει το στυλ Widget.MaterialComponents.TextInputLayout.OutlinedBox το οποίο εφαρμόζεται αυτόματα σε όλα τα πεδία εισαγωγής που χρησιμοποιούν TextInputLayout. Αυτό εξασφαλίζει συνεπή εμφάνιση χωρίς αντιγραφή χαρακτηριστικών σε κάθε διάταξη.

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

Ποια είναι η διαφορά μεταξύ EditText και TextView;

EditText κληρονομεί από το TextView και προσθέτει τη δυνατότητα επεξεργασίας κειμένου. Το TextView εμφανίζει μόνο κείμενο, ενώ το EditText επιτρέπει στον χρήστη να εισάγει, να διαγράφει και να τροποποιεί περιεχόμενο. Το EditText υποστηρίζει επίσης inputType, TextWatcher, διαχείριση δρομέα και άλλες λειτουργίες που σχετίζονται με την εισαγωγή δεδομένων.

Πώς να απαγορεύσετε την εισαγωγή συγκεκριμένων χαρακτήρων στο EditText;

Χρησιμοποιήστε InputFilter — μια διεπαφή για φιλτράρισμα εισαγόμενων χαρακτήρων. Το EditText υποστηρίζει τον ορισμό πίνακα φίλτρων μέσω της μεθόδου setFilters(). Για παράδειγμα, το InputFilter.LengthFilter περιορίζει το μήκος κειμένου, και ένα προσαρμοσμένο InputFilter μπορεί να απαγορεύει συγκεκριμένους χαρακτήρες, κανονικές εκφράσεις ή εύρη Unicode.

Πώς να λάβετε κείμενο από το EditText στον κώδικα;

Καλέστε τη μέθοδο editText.text.toString() σε Kotlin ή editText.getText().toString() σε Java. Η ιδιότητα text επιστρέφει ένα Editable το οποίο μετατρέπεται σε String μέσω toString(). Είναι σημαντικό να ελέγχετε το κείμενο για null και κενό πριν από τη χρήση, ειδικά σε φόρμες με υποχρεωτικά πεδία.

Πώς να κάνετε το EditText πολλαπλών γραμμών;

Ορίστε το χαρακτηριστικό android:inputType="textMultiLine" ή προσθέστε προγραμματιστικά τη σημαία InputType.TYPE_TEXT_FLAG_MULTI_LINE. Στη λειτουργία πολλαπλών γραμμών, το EditText επιτρέπει αλλαγή γραμμής με Enter και αυξάνεται αυτόματα σε ύψος. Για περιορισμό ύψους, χρησιμοποιήστε android:maxLines ή android:minLines.

Πώς να απενεργοποιήσετε το EditText για επεξεργασία;

Ορίστε το χαρακτηριστικό android:enabled="false" ή καλέστε editText.isEnabled = false στον κώδικα. Το απενεργοποιημένο EditText δεν αντιδρά σε αφές, δεν λαμβάνει εστίαση και εμφανίζεται σε γκρι χρώμα (κατάσταση disabled). Εναλλακτικά, χρησιμοποιήστε android:focusable="false", το οποίο απενεργοποιεί την εισαγωγή αλλά διατηρεί την κανονική εμφάνιση.

Σύνοψη

  • EditText — βασικό στοιχείο εισαγωγής κειμένου στο Android, κληρονόμος του TextView με υποστήριξη επεξεργασίας.
  • inputType καθορίζει τη λειτουργία πληκτρολογίου και επιτρεπόμενους χαρακτήρες: κείμενο, αριθμός, email, τηλέφωνο, κωδικός.
  • TextWatcher επιτρέπει την παρακολούθηση αλλαγών κειμένου σε πραγματικό χρόνο για επικύρωση και αυτόματη συμπλήρωση.
  • OnEditorActionListener χειρίζεται ενέργειες πληκτρολογίου: Done, Search, Next, Send.
  • InputFilter περιορίζει τους εισαγόμενους χαρακτήρες και το μήκος κειμένου μέσω προσαρμοσμένων φίλτρων.
  • Χαρακτηριστικά hint, maxLines, maxLength, textColorHint ρυθμίζουν τη συμπεριφορά και εμφάνιση του πεδίου.
  • Material Design στυλ μέσω TextInputLayout παρέχει μοντέρνα εμφάνιση με πλωτή ετικέτα και σφάλματα.

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

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

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

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