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 بناتا ہے جس کے ذریعے ان پٹ سسٹم کریکٹرز، کی پریس اور ترمیم کے کمانڈ منتقل کرتا ہے۔ یہ طریقہ کار ورچوئل کی بورڈز سے لے کر فزیکل بلوٹوتھ کی بورڈز اور وائس ان پٹ تک کسی بھی ان پٹ طریقہ کے ساتھ مطابقت کو یقینی بناتا ہے۔

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: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 مخصوص حروف، ریگولر ایکسپریشنز یا یونیکوڈ رینجز کو محدود کر سکتا ہے۔

کوڈ میں 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں