EditText: यह क्या है, विशेषताएँ और Android में इनपुट फ़ील्ड के साथ काम करना

लेखक: IT Sectr प्रकाशित: 2026-07-07 पढ़ने का समय: 9 मिनट

EditText एक मूल Android घटक है जो यूज़र इंटरफ़ेस में टेक्स्ट इनपुट और संपादन के लिए डिज़ाइन किया गया है। यह TextView से इनहेरिट करता है और वर्चुअल या भौतिक कीबोर्ड से कैरेक्टर इनपुट की अनुमति देता है। EditText कई मोड सपोर्ट करता है: एकल और बहु-पंक्ति टेक्स्ट, पासवर्ड, नंबर, ईमेल पते और फ़ोन नंबर। Android Developers (2026) के अनुसार, EditText का उपयोग 90% से अधिक Android ऐप्स में फ़ॉर्म, सर्च फ़ील्ड, चैट और डेटा एंट्री स्क्रीन बनाने के लिए किया जाता है।

मुख्य बातें

  • EditText — Android में टेक्स्ट इनपुट का मूल घटक, TextView का उपवर्ग।
  • इनपुट मोड — टेक्स्ट, नंबर, पासवर्ड, ईमेल, फ़ोन और मल्टी-लाइन इनपुट सपोर्ट करता है।
  • XML एट्रीब्यूट — inputType, maxLines, hint, textColorHint और अन्य पैरामीटर के माध्यम से कॉन्फ़िगरेशन।
  • लिसनर — TextWatcher परिवर्तन ट्रैक करने के लिए और OnEditorActionListener क्रियाओं को संभालने के लिए।
  • Material Design — TextInputLayout फ़्लोटिंग लेबल और एरर मैसेज के साथ EditText का विस्तार करता है।

Android में EditText क्या है

EditText android.widget पैकेज से एक क्लास है जो यूज़र डेटा इनपुट के लिए एक इंटरैक्टिव टेक्स्ट फ़ील्ड लागू करता है। Android इनहेरिटेंस पदानुक्रम में, EditText TextView का विस्तार करता है, इसलिए यह फ़ॉन्ट, रंग और संरेखण प्रबंधन सहित टेक्स्ट लेबल के सभी गुणों को इनहेरिट करता है। EditText और TextView के बीच मुख्य अंतर सामग्री को संपादित करने की क्षमता है — उपयोगकर्ता इंटरफ़ेस में सीधे टेक्स्ट दर्ज कर सकता है, हटा सकता है और संशोधित कर सकता है।

प्रत्येक EditText एक Editable इंस्टेंस से जुड़ा होता है जो दर्ज किए गए टेक्स्ट को संग्रहीत करता है और इन्सर्ट, डिलीट और रिप्लेस ऑपरेशन का समर्थन करता है। टाइप करते समय, EditText स्वचालित रूप से कर्सर पोज़ीशन, टेक्स्ट चयन और पूर्ववत/पुनः करने के लिए परिवर्तन इतिहास का प्रबंधन करता है। 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खाली फ़ील्ड में दिखाया गया संकेत टेक्स्ट"ईमेल दर्ज करें"
android:inputTypeइनपुट मोड (टेक्स्ट, नंबर, पासवर्ड, आदि)textEmailAddress
android:maxLinesअधिकतम पंक्तियों की संख्या3
android:maxLengthकैरेक्टर में अधिकतम टेक्स्ट लंबाई100
android:textColorHintसंकेत टेक्स्ट का रंग#999999

android:hint एट्रीब्यूट सबसे महत्वपूर्ण में से एक है — यह उपयोगकर्ता को बताता है कि फ़ील्ड में कौन सा डेटा अपेक्षित है। जब टेक्स्ट दर्ज किया जाता है, तो संकेत स्वचालित रूप से छिप जाता है। संकेत फ़ॉर्म सबमिशन में भाग नहीं लेता और फ़ील्ड मान के रूप में सहेजा नहीं जाता। Material Design अधिक आधुनिक दिखने के लिए सादे संकेत के बजाय फ़्लोटिंग लेबल के साथ TextInputLayout का उपयोग करने की अनुशंसा करता है।

  • 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 एट्रीब्यूट निर्धारित करता है कि उपयोगकर्ता को किस प्रकार का कीबोर्ड दिखाया जाएगा और इनपुट के लिए कौन से कैरेक्टर अनुमत हैं। यह एक बिटमास्क है जहाँ इनपुट क्लास (TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_CLASS_PHONE) को मॉडिफ़ायर के साथ जोड़ा जाता है।

प्रत्येक इनपुट मोड न केवल कीबोर्ड लेआउट बदलता है बल्कि टेक्स्ट प्रोसेसिंग को भी प्रभावित करता है: संख्यात्मक मोड में केवल अंक और दशमलव विभाजक अनुमत हैं, ईमेल मोड में @ प्रतीक और डोमेन एक्सटेंशन उपलब्ध हैं, और फ़ोन मोड में अंक और +, #, * प्रतीक दिखाए जाते हैं। सही 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), Search (IME_ACTION_SEARCH), Send (IME_ACTION_SEND), Next (IME_ACTION_NEXT) और अन्य दबाना। यह लिसनर फ़ॉर्म नेविगेशन को व्यवस्थित करने के लिए विशेष रूप से उपयोगी है — Next दबाने पर फ़ोकस स्वचालित रूप से अगले फ़ील्ड में चला जाता है, और Done दबाने पर कीबोर्ड छिप जाता है और सबमिशन निष्पादित होता है।

Android Developers Blog (2025) के अनुसार, android:imeOptions एट्रीब्यूट के साथ OnEditorActionListener का उचित उपयोग अतिरिक्त सबमिट बटन के बिना सहज फ़ॉर्म बनाने की अनुमति देता है — उपयोगकर्ता फ़ील्ड भरता है और कीबोर्ड पर Done दबाता है, जो सेव या खोज को ट्रिगर करता है।

kotlin
// ईमेल सत्यापन के लिए 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"
    }
})

// फ़ॉर्म सबमिशन के लिए OnEditorActionListener
editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        submitForm()
        true
    } else false
}

EditText के साथ कोड उदाहरण

आइए ईमेल और पासवर्ड इनपुट के लिए EditText का उपयोग करके लॉगिन स्क्रीन बनाने का एक पूर्ण उदाहरण देखें। यह उदाहरण 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 boxStrokeColor, boxBackgroundColor और endIconMode सहित कस्टम एट्रीब्यूट के साथ MaterialComponents.EditText थीम प्रदान करता है।

EditText की अंडरलाइन का रंग बदलने के लिए, android:backgroundTint एट्रीब्यूट का उपयोग करें, जो डिफ़ॉल्ट और फ़ोकस्ड स्थितियों के लिए रंग सेट करता है। Material Design में, अंडरलाइन का रंग थीम के colorPrimary के माध्यम से प्रबंधित किया जाता है। पूर्ण अनुकूलन के लिए, आप res/drawable फ़ोल्डर में बैकग्राउंड के लिए एक कस्टम drawable बना सकते हैं।

शैलीएट्रीब्यूटपरिणाम
टेक्स्ट रंगandroid:textColorदर्ज किए गए टेक्स्ट का रंग बदलता है
संकेत रंगandroid:textColorHintसंकेत टेक्स्ट का रंग बदलता है
अंडरलाइनandroid:backgroundTintफ़ील्ड के नीचे रेखा का रंग बदलता है
फ़ॉन्ट आकारandroid:textSizesp में टेक्स्ट का आकार सेट करता है
फ़ॉन्ट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 से टेक्स्ट कैसे प्राप्त करें?

Kotlin में editText.text.toString() या Java में editText.getText().toString() कॉल करें। text प्रॉपर्टी Editable लौटाती है, जिसे toString() के माध्यम से String में बदला जाता है। टेक्स्ट का उपयोग करने से पहले हमेशा 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 स्पर्श पर प्रतिक्रिया नहीं करता, फ़ोकस प्राप्त नहीं कर सकता और ग्रे रंग में दिखता है (निष्क्रिय स्थिति)। एक विकल्प android:focusable="false" का उपयोग करना है, जो इनपुट को निष्क्रिय करता है लेकिन सामान्य दिखावट बनाए रखता है।

सारांश

  • EditText — Android में मूल टेक्स्ट इनपुट घटक, संपादन समर्थन के साथ TextView का उपवर्ग।
  • inputType कीबोर्ड मोड और अनुमत कैरेक्टर निर्धारित करता है: टेक्स्ट, नंबर, ईमेल, फ़ोन, पासवर्ड।
  • TextWatcher सत्यापन और ऑटोकम्प्लीट के लिए रीयल टाइम में टेक्स्ट परिवर्तनों को ट्रैक करने की अनुमति देता है।
  • OnEditorActionListener कीबोर्ड क्रियाओं को संभालता है: Done, Search, Next, Send।
  • InputFilter कस्टम फ़िल्टर के माध्यम से इनपुट कैरेक्टर और टेक्स्ट लंबाई को प्रतिबंधित करता है।
  • एट्रीब्यूट जैसे hint, maxLines, maxLength, textColorHint व्यवहार और दिखावट कॉन्फ़िगर करते हैं।
  • Material Design TextInputLayout के माध्यम से फ़्लोटिंग लेबल और त्रुटियों के साथ आधुनिक दिखावट प्रदान करता है।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें