EditText: bu nədir, atributları və Android-də mətn daxiletmə sahəsi ilə iş

Müəllif: IT Sectr Dərc olunub: 2026-07-07 Oxuma vaxtı: 9 dəq

EditText — Android-də istifadəçi interfeysində mətn daxil etmək və redaktə etmək üçün nəzərdə tutulmuş əsas komponentdir. O, TextView-dən miras alır və virtual və ya fiziki klaviaturadan simvol daxil etmə imkanı verir. EditText bir çox rejimi dəstəkləyir: tək və çoxsətirli mətn, parollar, rəqəmlər, e-poçt ünvanları və telefon nömrələri. Android Developers (2026)-ə görə, EditText Android tətbiqlərinin 90%-dən çoxunda formalar, axtarış sahələri, söhbətlər və məlumat daxiletmə ekranları yaratmaq üçün istifadə olunur.

Əsas məqamlar

  • EditText — Android-də mətn daxil etmək üçün əsas komponent, TextView-in varisi.
  • Daxiletmə rejimləri — mətn, rəqəmlər, parollar, e-poçt, telefon və çoxsətirli daxiletməni dəstəkləyir.
  • XML atributları — inputType, maxLines, hint, textColorHint və digər parametrlər vasitəsilə konfiqurasiya.
  • Dinləyicilər — dəyişiklikləri izləmək üçün TextWatcher və hərəkətləri emal etmək üçün OnEditorActionListener.
  • Material Design — TextInputLayout EditText-i üzən etiket və xəta mesajları ilə genişləndirir.

Android-də EditText nədir

EditText — android.widget paketindən olan, istifadəçi tərəfindən məlumat daxil etmək üçün interaktiv mətn sahəsini həyata keçirən sinifdir. Android miras iyerarxiyasında EditText extends TextView, buna görə də şrift, rəng və düzləndirmə idarəetməsi daxil olmaqla bütün mətn etiketi xüsusiyyətlərini miras alır. EditText və TextView arasındakı əsas fərq məzmunu redaktə etmək imkanıdır — istifadəçi birbaşa interfeysdə mətn daxil edə, silə və dəyişə bilər.

Hər bir EditText daxil edilmiş mətni saxlayan və simvolların daxil edilməsi, silinməsi və dəyişdirilməsi əməliyyatlarını dəstəkləyən Editable nümunəsi ilə əlaqəlidir. Mətn daxil edərkən EditText avtomatik olaraq kursor mövqeyini, mətn seçimini və ləğv etmək (undo/redo) üçün dəyişiklik tarixçəsini idarə edir. Android Developers Guide (2026)-yə görə, EditText həmçinin EditText-dən miras alan AutoCompleteTextView sinifi vasitəsilə avtomatik tamamlamağı dəstəkləyir.

EditText arxitekturası model (Editable), görünüş (TextView) və nəzarətçinin (InputConnection) ayrılması üzərində qurulub. Fokus aldıqda EditText InputConnection yaradır, onun vasitəsilə daxiletmə sistemi simvolları, düymə vuruşlarını və redaktə əmrlərini ötürür. Bu mexanizm virtual klaviaturalardan tutmuş fiziki Bluetooth klaviaturaları və səsli daxiletməyə qədər istənilən daxiletmə üsulları ilə uyğunluğu təmin edir.

kotlin
val editText = EditText(context).apply {
    hint = "Mətn daxil edin"
    inputType = InputType.TYPE_CLASS_TEXT
    maxLines = 1
    setTextColor(Color.parseColor("#000000"))
}

EditText-in əsas atributları

EditText davranışı və görünüşü dəqiq tənzimləmək üçün onlarla atribut təqdim edir. Onlar həm XML layout-da, həm də Kotlin və ya Java vasitəsilə proqramlı şəkildə təyin edilə bilər. Atributlar kateqoriyalara bölünür: mətn idarəetməsi, məhdudiyyətlər, vizual görünüş və klaviatura ilə qarşılıqlı əlaqə.

AtributIzahNümunə dəyər
android:hintBoş sahədə göstərilən ipucu mətni„E-poçt daxil edin"
android:inputTypeDaxiletmə rejimi (mətn, rəqəm, parol və s.)textEmailAddress
android:maxLinesMaksimum sətir sayı3
android:maxLengthSimvollarda maksimum mətn uzunluğu100
android:textColorHintİpucu mətninin rəngi#999999

android:hint atributu ən vaciblərindən biridir — istifadəçiyə sahədə hansı məlumatların gözlənildiyini bildirir. Mətn daxil edərkən hint avtomatik olaraq gizlənir. Hint formanın göndərilməsində iştirak etmir və sahə dəyəri kimi saxlanmır. Material Design daha müasir görünüş üçün sadə hint əvəzinə üzən etiketli TextInputLayout-dan istifadə etməyi tövsiyə edir.

  • android:selectAllOnFocus — fokus aldıqda bütün mətni seçir (axtarış sahələri üçün rahat).
  • android:maxLength — daxil edilən simvolların sayını məhdudlaşdırır, artıqlığı kəsir.
  • android:lines — sahənin sabit hündürlüyünü sətirlərlə təyin edir (minLines-dan fərqli olaraq).
  • android:gravity — sahə daxilində mətnin düzləndirilməsi: left, center, top və s.
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" />

Daxiletmə rejimləri və inputType

inputType atributu istifadəçiyə hansı növ klaviaturanın göstəriləcəyini və hansı simvolların daxil edilməsinə icazə verildiyini müəyyən edir. Bu, daxiletmə sinfinin (TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_CLASS_PHONE) modifierlərlə birləşdirildiyi bit maskasıdır.

Hər bir daxiletmə rejimi təkcə klaviatura layoutunu dəyişmir, həm də mətnin emalına təsir edir: rəqəm rejimində yalnız rəqəmlər və onluq ayırıcıya icazə verilir, e-poçt rejimində @ simvolu və domen genişləndirmələri mövcuddur, telefon rejimində isə rəqəmlər və +, #, * simvolları göstərilir. Düzgün inputType seçimi istifadəçi təcrübəsinə kritik təsir göstərir — uyğun olmayan klaviatura istifadəçini rejimləri dəyişməyə məcbur edir ki, bu da formanın doldurulma müddətini 30–50% artırır.

Material Design Guidelines (2025)-yə görə, hər bir sahə üçün mümkün qədər konkret inputType istifadə etmək tövsiyə olunur: parollar üçün textPassword, qiymətlər üçün numberDecimal, telefon nömrələri üçün phone, çoxsətirli daxiletmə üçün textMultiLine. Bu, formaların doldurulmasını sürətləndirir və daxiletmə xətalarının sayını azaldır.

kotlin
// Proqramlı inputType quraşdırması
editText.inputType = InputType.TYPE_CLASS_TEXT or
    InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or
    InputType.TYPE_TEXT_FLAG_AUTO_CORRECT

EditText dinləyiciləri: TextWatcher və OnEditorActionListener

TextWatcher — EditText-də mətn dəyişikliklərini real vaxtda izləmək üçün interfeysdir. Üç metodu var: beforeTextChanged dəyişiklikdən əvvəl çağrılır, onTextChanged — dəyişiklik zamanı, afterTextChanged — mətn dəyişikliyi başa çatdıqdan sonra çağrılır. TextWatcher daxiletmənin validasiyası, simvolların sayılması, axtarış və avtomatik tamamlama üçün istifadə olunur.

OnEditorActionListener istifadəçinin klaviaturada hərəkətlərini emal edir: Done (IME_ACTION_DONE), axtarış (IME_ACTION_SEARCH), göndərmə (IME_ACTION_SEND), növbəti sahəyə keçid (IME_ACTION_NEXT) düymələrinin basılması və digərləri. Bu dinləyici xüsusilə forma naviqasiyasını təşkil etmək üçün faydalıdır — Next basıldıqda fokus avtomatik olaraq növbəti sahəyə keçir, Done basıldıqda isə klaviatura gizlənir və göndərmə yerinə yetirilir.

Android Developers Blog (2025)-ə görə, OnEditorActionListener-in android:imeOptions atributu ilə düzgün istifadəsi əlavə göndərmə düymələri olmadan intuitiv formalar yaratmağa imkan verir — istifadəçi sahələri doldurur və klaviaturada Done basır, bu da yadda saxlanmanı və ya axtarışı işə salır.

kotlin
// E-poçt validasiyası üçün TextWatcher
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"
    }
})

// Forma göndərilməsi üçün OnEditorActionListener
editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        submitForm()
        true
    } else false
}

EditText ilə kod nümunələri

EditText istifadə edərək e-poçt və parol daxil etmək üçün giriş ekranı yaratmağın tam nümunəsini nəzərdən keçirək. Bu nümunədə inputType konfiqurasiyası, TextWatcher vasitəsilə validasiya və giriş düyməsinin basılmasının emalı göstərilir.

Giriş ekranının XML layout-u

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-in proqramlı konfiqurasiyası

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-in stilləşdirilməsi

EditText XML atributları, mövzular və stillər vasitəsilə fərdiləşdirməni dəstəkləyir. Mətn rəngini, ipucu rəngini, alt xətt rəngini (backgroundTint), şrift stilini, mətn ölçüsünü və daha çoxunu dəyişmək olar. Material Components fərdi atributlarla MaterialComponents. EditText mövzusunu təqdim edir, o cümlədən boxStrokeColor, boxBackgroundColor və endIconMode.

EditText-in alt xətt rəngini dəyişmək üçün android:backgroundTint atributundan istifadə olunur, o, default vəziyyət və fokus vəziyyəti üçün rəng təyin edir. Material Design-də alt xətt rəngi mövzunun colorPrimary vasitəsilə idarə olunur. Tam fərdiləşdirmə üçün res/drawable qovluğunda fon üçün fərdi drawable yaradıla bilər.

StilAtributNəticə
Mətn rəngiandroid:textColorDaxil edilmiş mətnin rəngini dəyişir
Hint rəngiandroid:textColorHintİpucu mətninin rəngini dəyişir
Alt xəttandroid:backgroundTintSahənin altındakı xəttin rəngini dəyişir
Şrift ölçüsüandroid:textSizeMətn ölçüsünü sp-də təyin edir
Şriftandroid:fontFamilyFərdi şrifti qoşur

Tətbiqdə bütün EditText-lərin vahid stilini yaratmaq üçün mövzuda qlobal stil təyin etmək tövsiyə olunur. Material Design TextInputLayout istifadə edən bütün daxiletmə sahələrinə avtomatik tətbiq olunan Widget.MaterialComponents.TextInputLayout.OutlinedBox stilini təklif edir. Bu, hər layout-da atributları təkrarlamadan ardıcıl görünüşü təmin edir.

Tez-tez verilən suallar

EditText və TextView arasında nə fərq var?

EditText TextView-dən miras alır və mətn redaktəsi imkanı əlavə edir. TextView yalnız mətni göstərir, EditText isə istifadəçiyə məzmunu daxil etməyə, silməyə və dəyişməyə imkan verir. EditText həmçinin inputType, TextWatcher, kursor idarəetməsi və məlumat daxiletməsi ilə bağlı digər funksiyaları dəstəkləyir.

EditText-də müəyyən simvolların daxil edilməsini necə qadağan etmək olar?

InputFilter — daxil edilən simvolları filtrləmək üçün interfeysdən istifadə edin. EditText setFilters() metodu vasitəsilə filtr massivinin quraşdırılmasını dəstəkləyir. Məsələn, InputFilter.LengthFilter mətnin uzunluğunu məhdudlaşdırır, fərdi InputFilter isə müəyyən simvolları, müntəzəm ifadələri və ya Unicode diapazonlarını qadağan edə bilər.

Kodda EditText-dən mətni necə əldə etmək olar?

Kotlin-də editText.text.toString() və ya Java-da editText.getText().toString() metodunu çağırın. text xassəsi Editable qaytarır, o, toString() vasitəsilə String-ə çevrilir. İstifadədən əvvəl mətni null və boşluq üçün yoxlamaq vacibdir, xüsusən məcburi sahələri olan formalarda.

EditText-i çoxsətirli necə etmək olar?

android:inputType="textMultiLine" atributunu təyin edin və ya proqramlı şəkildə InputType.TYPE_TEXT_FLAG_MULTI_LINE bayrağını əlavə edin. Çoxsətirli rejimdə EditText Enter ilə sətir qırmaya imkan verir və avtomatik olaraq hündürlükdə artır. Hündürlüyü məhdudlaşdırmaq üçün android:maxLines və ya android:minLines istifadə edin.

EditText-i redaktə üçün necə söndürmək olar?

android:enabled="false" atributunu təyin edin və ya kodda editText.isEnabled = false çağırın. Söndürülmüş EditText toxunmalara reaksiya vermir, fokus almır və boz rəngdə göstərilir (disabled state). Alternativ olaraq android:focusable="false" istifadə edilə bilər, bu, daxiletməni söndürür, lakin normal görünüşü saxlayır.

Xülasə

  • EditText — Android-də mətn daxil etmək üçün əsas komponent, redaktə dəstəyi ilə TextView-in varisi.
  • inputType klaviatura rejimini və icazə verilən simvolları müəyyən edir: mətn, rəqəm, e-poçt, telefon, parol.
  • TextWatcher validasiya və avtomatik tamamlama üçün mətndə dəyişiklikləri real vaxtda izləməyə imkan verir.
  • OnEditorActionListener klaviatura hərəkətlərini emal edir: Done, Search, Next, Send.
  • InputFilter fərdi filtrlər vasitəsilə daxil edilən simvolları və mətn uzunluğunu məhdudlaşdırır.
  • Atributlar hint, maxLines, maxLength, textColorHint sahənin davranışını və görünüşünü konfiqurasiya edir.
  • Material Design TextInputLayout vasitəsilə stilləşdirmə üzən etiket və xətalarla müasir görünüşü təmin edir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun