EditText: mi ez, attribútumok és munka a beviteli mezővel Androidon

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

EditText — egy alap Android komponens, amely szöveg bevitelére és szerkesztésére szolgál a felhasználói felületen. A TextView-ből származik, és lehetőséget biztosít karakterek bevitelére virtuális vagy fizikai billentyűzetről. Az EditText számos módot támogat: egysoros és többsoros szöveg, jelszavak, számok, e-mail címek és telefonszámok. A Android Developers (2026) szerint az EditText az Android alkalmazások több mint 90%-ában használatos űrlapok, keresőmezők, csevegések és adatbeviteli képernyők létrehozására.

Főbb pontok

  • EditText — alap szövegbeviteli komponens Androidon, a TextView örököse.
  • Beviteli módok — támogatja a szöveget, számokat, jelszavakat, e-mailt, telefont és többsoros bevitelet.
  • XML attribútumok — konfiguráció inputType, maxLines, hint, textColorHint és egyéb paraméterekkel.
  • Figyelők — TextWatcher a változások követésére és OnEditorActionListener a műveletek kezelésére.
  • Material Design — a TextInputLayout lebegő címkével és hibaüzenetekkel bővíti az EditText-et.

Mi az EditText Androidon

EditText — az android.widget csomagból származó osztály, amely egy interaktív szöveges mezőt valósít meg a felhasználói adatbevitelhez. Az Android öröklődési hierarchiában EditText extends TextView, így örökli a szöveges címke összes tulajdonságát, beleértve a betűtípusok, színek és igazítás kezelését. A fő különbség az EditText és a TextView között a tartalom szerkeszthetősége — a felhasználó közvetlenül a felületen vihet be, törölhet és módosíthat szöveget.

Minden EditText egy Editable példányhoz kapcsolódik, amely tárolja a bevitt szöveget és támogatja a karakterek beszúrását, törlését és cseréjét. Szövegbevitelkor az EditText automatikusan kezeli a kurzor pozícióját, a szöveg kijelölését és a változtatások előzményeit a visszavonáshoz (undo/redo). A Android Developers Guide (2026) szerint az EditText támogatja az automatikus kiegészítést az AutoCompleteTextView osztályon keresztül, amely az EditText-ből származik.

Az EditText architektúrája a modell (Editable), nézet (TextView) és vezérlő (InputConnection) szétválasztására épül. Fókusz elérésekor az EditText létrehoz egy InputConnection-t, amelyen keresztül a beviteli rendszer karaktereket, billentyűleütéseket és szerkesztési parancsokat továbbít. Ez a mechanizmus biztosítja a kompatibilitást bármilyen beviteli módszerrel — a virtuális billentyűzetektől a fizikai Bluetooth billentyűzetekig és a hangbemenetig.

kotlin
val editText = EditText(context).apply {
    hint = "Írja be a szöveget"
    inputType = InputType.TYPE_CLASS_TEXT
    maxLines = 1
    setTextColor(Color.parseColor("#000000"))
}

Az EditText alapvető attribútumai

EditText több tucat attribútumot kínál a viselkedés és megjelenés pontos beállításához. Ezek beállíthatók mind az XML elrendezésben, mind programozottan Kotlin vagy Java segítségével. Az attribútumok kategóriákra oszlanak: szövegkezelés, korlátozások, vizuális megjelenés és billentyűzettel való interakció.

AttribútumLeírásPélda érték
android:hintSegédszöveg, amely az üres mezőben jelenik meg„Adja meg az e-mailt"
android:inputTypeBeviteli mód (szöveg, szám, jelszó stb.)textEmailAddress
android:maxLinesMaximális sorok száma3
android:maxLengthMaximális szöveghossz karakterekben100
android:textColorHintA segédszöveg színe#999999

Az android:hint attribútum az egyik legfontosabb — tájékoztatja a felhasználót, hogy milyen adatok várhatók a mezőben. Szöveg beírásakor a hint automatikusan eltűnik. A hint nem vesz részt az űrlap elküldésében és nem tárolódik mezőértékként. A Material Design a lebegő címkével ellátott TextInputLayout használatát javasolja az egyszerű hint helyett a modernebb megjelenés érdekében.

  • android:selectAllOnFocus — kijelöli a teljes szöveget fókusz esetén (hasznos keresőmezőknél).
  • android:maxLength — korlátozza a bevitt karakterek számát, levágva a többletet.
  • android:lines — rögzített mezőmagasságot állít be sorokban (ellentétben a minLines-szal).
  • android:gravity — szöveg igazítása a mezőn belül: left, center, top stb.
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" />

Beviteli módok és inputType

Az inputType attribútum határozza meg, hogy milyen típusú billentyűzet jelenjen meg a felhasználónak, és mely karakterek engedélyezettek a bevitelhez. Ez egy bitmaszk, ahol a beviteli osztály (TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_CLASS_PHONE) módosítókkal van kombinálva.

Minden beviteli mód nemcsak a billentyűzet elrendezését változtatja meg, hanem befolyásolja a szöveg feldolgozását is: numerikus módban csak számok és tizedes elválasztó engedélyezett, e-mail módban elérhető a @ szimbólum és domain kiterjesztések, telefon módban pedig számok és a +, #, * szimbólumok jelennek meg. A megfelelő inputType kiválasztása kritikus hatással van a felhasználói élményre — a nem megfelelő billentyűzet módváltásra kényszeríti a felhasználót, ami 30–50%-kal növeli az űrlap kitöltési idejét.

A Material Design Guidelines (2025) szerint ajánlott a lehető legspecifikusabb inputType használata minden mezőhöz: textPassword jelszavakhoz, numberDecimal árakhoz, phone telefonszámokhoz, textMultiLine többsoros bevitelhez. Ez felgyorsítja az űrlapok kitöltését és csökkenti a beviteli hibák számát.

kotlin
// Programozott inputType beállítás
editText.inputType = InputType.TYPE_CLASS_TEXT or
    InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or
    InputType.TYPE_TEXT_FLAG_AUTO_CORRECT

EditText figyelők: TextWatcher és OnEditorActionListener

TextWatcher — egy interfész az EditText szövegváltozásainak valós idejű követésére. Három metódust tartalmaz: a beforeTextChanged a változás előtt hívódik meg, az onTextChanged — a változás közben, az afterTextChanged — a szövegváltozás befejezése után. A TextWatcher-t bevitel érvényesítésére, karakterszámlálásra, keresésre és automatikus kiegészítésre használják.

OnEditorActionListener kezeli a felhasználó billentyűzeten végzett műveleteit: a Done (IME_ACTION_DONE), keresés (IME_ACTION_SEARCH), küldés (IME_ACTION_SEND), következő mezőre lépés (IME_ACTION_NEXT) gombok megnyomását és másokat. Ez a figyelő különösen hasznos az űrlap navigáció megszervezéséhez — a Next megnyomásakor a fókusz automatikusan a következő mezőre ugrik, a Done megnyomásakor pedig a billentyűzet elrejtésre kerül és a küldés megtörténik.

A Android Developers Blog (2025) szerint az OnEditorActionListener helyes használata az android:imeOptions attribútummal lehetővé teszi intuitív űrlapok létrehozását további küldő gombok nélkül — a felhasználó kitölti a mezőket és megnyomja a Done-t a billentyűzeten, ami elindítja a mentést vagy keresést.

kotlin
// TextWatcher e-mail érvényesítéshez
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 űrlap elküldéséhez
editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        submitForm()
        true
    } else false
}

Kód példák EditText-tel

Nézzünk meg egy teljes példát egy bejelentkezési képernyő létrehozására EditText használatával e-mail és jelszó beviteléhez. Ebben a példában bemutatásra kerül az inputType konfigurációja, a TextWatcher-en keresztüli érvényesítés és a bejelentkezési gomb megnyomásának kezelése.

A bejelentkezési képernyő XML elrendezése

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" />

Az EditText programozott konfigurációja

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 stílusozása

EditText támogatja a testreszabást XML attribútumokon, témákon és stílusokon keresztül. Módosítható a szöveg színe, a segédszöveg színe, az aláhúzás színe (backgroundTint), a betűtípus stílusa, a szöveg mérete és még sok más. A Material Components biztosítja a MaterialComponents. EditText témát egyéni attribútumokkal, beleértve a boxStrokeColor, boxBackgroundColor és endIconMode elemeket.

Az EditText aláhúzásának színének módosításához az android:backgroundTint attribútumot használják, amely beállítja a színt az alapértelmezett állapothoz és a fókusz állapothoz. A Material Design-ben az aláhúzás színét a téma colorPrimary tulajdonsága kezeli. Teljes testreszabáshoz létrehozható egy egyedi drawable a háttérhez a res/drawable mappában.

StílusAttribútumEredmény
Szöveg színeandroid:textColorMegváltoztatja a bevitt szöveg színét
Hint színeandroid:textColorHintMegváltoztatja a segédszöveg színét
Aláhúzásandroid:backgroundTintMegváltoztatja a mező alatti vonal színét
Betűméretandroid:textSizeBeállítja a szöveg méretét sp-ben
Betűtípusandroid:fontFamilyEgyedi betűtípust csatlakoztat

Az alkalmazás összes EditText-jének egységes stílusának létrehozásához ajánlott globális stílust definiálni a témában. A Material Design a Widget.MaterialComponents.TextInputLayout.OutlinedBox stílust kínálja, amely automatikusan alkalmazódik minden TextInputLayout-ot használó beviteli mezőre. Ez konzisztens megjelenést biztosít az attribútumok minden elrendezésben történő megkettőzése nélkül.

Gyakran ismételt kérdések

Mi a különbség az EditText és a TextView között?

EditText a TextView-ből származik és hozzáadja a szöveg szerkesztésének lehetőségét. A TextView csak megjeleníti a szöveget, míg az EditText lehetővé teszi a felhasználó számára a tartalom bevitelét, törlését és módosítását. Az EditText emellett támogatja az inputType-ot, TextWatcher-t, kurzorkezelést és más adatbevitellel kapcsolatos funkciókat.

Hogyan tiltható meg bizonyos karakterek bevitele az EditText-ben?

Használja az InputFilter — egy interfészt a bevitt karakterek szűréséhez. Az EditText támogatja a szűrők tömbjének beállítását a setFilters() metóduson keresztül. Például az InputFilter.LengthFilter korlátozza a szöveg hosszát, és egy egyedi InputFilter megtilthat bizonyos karaktereket, reguláris kifejezéseket vagy Unicode tartományokat.

Hogyan lehet lekérni a szöveget az EditText-ből kódban?

Hívja meg a editText.text.toString() metódust Kotlinban vagy a editText.getText().toString() metódust Java-ban. A text tulajdonság egy Editable-t ad vissza, amely a toString()-en keresztül Stringgé alakul. Fontos a szöveg ellenőrzése null és üresség szempontjából használat előtt, különösen a kötelező mezőket tartalmazó űrlapoknál.

Hogyan lehet több soros EditText-et készíteni?

Állítsa be az android:inputType="textMultiLine" attribútumot, vagy adja hozzá programozottan az InputType.TYPE_TEXT_FLAG_MULTI_LINE zászlót. Többsoros módban az EditText lehetővé teszi a sortörést Enter-rel, és automatikusan növekszik magasságban. A magasság korlátozásához használja az android:maxLines vagy android:minLines attribútumot.

Hogyan lehet letiltani az EditText-et szerkesztésre?

Állítsa be az android:enabled="false" attribútumot, vagy hívja meg a editText.isEnabled = false kódban. A letiltott EditText nem reagál az érintésekre, nem kap fókuszt, és szürke színben jelenik meg (disabled state). Alternatíva az android:focusable="false" használata, amely letiltja a bevitelt, de megtartja a normál megjelenést.

Összefoglalás

  • EditText — alap szövegbeviteli komponens Androidon, a TextView örököse szerkesztési támogatással.
  • inputType meghatározza a billentyűzet módját és engedélyezett karaktereket: szöveg, szám, e-mail, telefon, jelszó.
  • TextWatcher lehetővé teszi a szövegváltozások valós idejű követését érvényesítéshez és automatikus kiegészítéshez.
  • OnEditorActionListener kezeli a billentyűzet műveleteit: Done, Search, Next, Send.
  • InputFilter korlátozza a bevitt karaktereket és szöveghosszt egyedi szűrőkön keresztül.
  • Attribútumok hint, maxLines, maxLength, textColorHint konfigurálják a mező viselkedését és megjelenését.
  • Material Design stílusozás TextInputLayout-on keresztül modern megjelenést biztosít lebegő címkével és hibákkal.

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