Keyboard Type — یہ کیا ہے، کی بورڈ کی اقسام اور Android میں انپٹ ترتیب

مصنف: IT Sectr اشاعت: 2026-07-07 مطالعے کا وقت: 9 منٹ

Keyboard Type Android میں ورتوالی کی بورڈ کی ترتیب ہے جو ایک مخصوص انپٹ فیلڈ کے لیے ظاہر کرده حروف کا سیٹ اور لی آؤٹ کی وضاحت کرتا ہے۔ Android بہت سے پھلے سے متعین شدہ اقسام کی حمایت کرتا ہے: text (معیاری متن)، number (عدادی)، phone (ٹیلیفون)، email (@ کی علامت کے ساتھ)، textPassword (پاس ورڈ کے لیے)، datetime اور دیگر۔ ہر قسم ایک مخصوص کام کے لیے انپٹ انٹرفیس کو بہتر بناتا ہے — مثلاً، ای میل کی بورڈ مرکزی سکرین پر @ کی علامت اور نقطہ ظاہر کرتا ہے۔ Android Developers (2026) کے مطابق، صحیح Keyboard Type کا انتخاب معیاری متن کی بورڈ کے مقابلے میں کی سٹروکس کی تعداد میں 20–40% تک کی کمی کرتا ہے۔

اہم نکات

  • Keyboard Type — Android میں android:inputType وصف سے طے کی بورڈ موڈؘ
  • اہم اقسام — text، number، phone، email، textPassword، datetime مختلف انپٹ مناظر کے لیے۔
  • انپٹ بہتری — صحیح کی بورڈ کی قسم فارم پر کرنے میں 20–40% تیزی لاتی ہے۔
  • پرچم کا اتحاد — inputType انپٹ کلاس اور مبدلوں (کئی سطری، خودکار درستی) کو ملاتا ہے۔
  • IME اختیارات — imeOptions وصف کی بورڈ پر عمل کے بٹن (Done، Search، Next) کو کنٹرول کرتا ہے۔

Android میں Keyboard Type کیا ہے

Keyboard Type XML میں android:inputType وصف کی قیمت یا کوڈ میں setInputType() کے پروگرامیٹک کال سے متعین ہوتا ہے۔ InputType ایک بٹ ماسک ہے جہاں انپٹ کلاس کو مبدل پرچموں کے ساتھ ملایا جاتا ہے۔ بنیادی کلاسیں یہ ہیں: متن کے لیے TYPE_CLASS_TEXT، عداد کے لیے TYPE_CLASS_NUMBER، ٹیلیفون کے لیے TYPE_CLASS_PHONE، تاریخ اور وقت کے لیے TYPE_CLASS_DATETIME۔

ہر Keyboard Type تین پہلوئوں کو متاثر کرتا ہے: ورتوالی کی بورڈ کا لی آؤٹ (مرکزی سکرین پر کون سے حروف نظر آتے ہیں)، درج کردہ حروف کی چھان ٹ (کون سے حروف کی اجازت ہے)، اور خودکار درستی/خودکار مکمل کا روائیہ۔ مثلاً، عدادی کی بورڈ صرف ہندسے اور اعشاری جدا کنندگی کو ظاہر کرتی ہے، اور یہ حروف نہیں دکھاتی چاہے صاحب استعمال کیس بدل دے۔ Android Developers Documentation (2026) کے مطابق، کلاسوں کو پرچموں کے ساتھ ملانا انتہائی مخصوصی موڈ بنانے کی اجازت دیتا ہے: خودکار درستی کے ساتھ کئی سطری متن، فلوٹنگ پائنٹ نمبر، خودکار پر کرنے کی حمایت کے ساتھ پاس ورڈ۔

یہ سمجھنا اہم ہے کہ Keyboard Type انپٹ سیسٹم (IME) کے لیے ایک سفارش ہے۔ کچھ تیسرے فریق کی بورڈز (Gboard، SwiftKey) متعین قسم کو جزوی طور پر نظرانداز کر سکتی ہیں اگر صاحب نے اپنی ترجیحات مقرر کی ہوں۔ تاہم، زیادہ تر معیاری Android کی بورڈز اور Google Gboard متعین انپٹ قسم کی سختی سے پیروی کرتے ہیں۔

kotlin
// پروگرامیٹک کی بورڈ کی قسم کی ترتیب
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — معیاری متن کی بورڈ

TYPE_CLASS_TEXT متن درج کرنے کے لیے بنیادی کلاس ہے۔ یہ حروف، ہندسے اور علامات کے ساتھ معیاری QWERTY کی بورڈ کو چالو کرتا ہے۔ متن کلاس میں سب سے زیادہ مبدل ہوتے ہیں جو روائیہ کو بہتر بناتے ہیں: TYPE_TEXT_FLAG_CAP_SENTENCES (جملے کے آغاز پر خودکار بڑا حرف)، TYPE_TEXT_FLAG_AUTO_CORRECT (خودکار درستی)، TYPE_TEXT_FLAG_MULTI_LINE (کئی سطری موڈ)، TYPE_TEXT_FLAG_NO_SUGGESTIONS (تجویزات بند کرنا)۔

متن کی بورڈ کے مبدلوں کو درست ترتیبیں بنانے کے لیے ملایا جا سکتا ہے: مثلاً، text|textCapSentences|textAutoCorrect تبصرے کے انپٹ فیلڈ کے لیے موزوں ہے جہاں خودکار بڑے حروف اور تیبائی درستی کی ضرورت ہوتی ہے۔ جبکہ text|textNoSuggestions کوڈ یا خاص مصالح درج کرنے کے لیے استعمال ہوتا ہے جہاں خودکار درستی نقصان دہ ہو سکتی ہے۔

UX Stack Exchange (2025) کے مطابق، خودکار درستی کے ساتھ ایک متن کی بورڈ اوسط صاحب کے لیے ٹائپنگ کو 15–25% تیز کرتی ہے، لیکن تکنیکی مصالح (کوڈ، URL، ای میل) کے لیے خودکار درستی کو بند کرنے کی سفارش کی جاتی ہے کیونکہ یہ اکسر صحیح مصالح کو غلط سے بدل دیتی ہے۔

xml
<!-- Text with autocorrect and capital sentences -->
android:inputType="textCapSentences|textAutoCorrect"

<!-- Text without suggestions and autocorrect -->
android:inputType="textNoSuggestions"

Number — عدادی کی بورڈ

TYPE_CLASS_NUMBER عدادی کی بورڈ کو چالو کرتا ہے، جو صرف ہندسے، اعشاری جدا کنندگی اور منفی کا نشان ظاہر کرتا ہے۔ یہ قسم مقدار، قیمتیں، عمر، کوڈ اور دیگر عدادی ڈیٹا کے انپٹ فیلڈ کے لیے استعمال ہوتی ہے۔ عدادی کی بورڈ متن کی بورڈ کے مقابلے سکرین پر کم جگہ گھرتی ہے اور حادثی حرف درج کرنے کو ختم کرتی ہے۔

Number کے تین مبدل ہیں: TYPE_NUMBER_FLAG_DECIMAL ایک اعشاری نقطہ/کوما جوڑتا ہے، TYPE_NUMBER_FLAG_SIGNED منفی عداد کے لیے منفی کا نشان جوڑتا ہے، TYPE_NUMBER_VARIATION_PASSWORD — PIN کوڈ کے لیے جہاں ہندسے چھپے حروف کے طور پر ظاہر ہوتے ہیں۔ number|numberDecimal|numberSigned کا امتزاج کسی بھی نشان کے فلوٹنگ پائنٹ عداد درج کرنے کے لیے ایک مکمل فیلڈ بناتا ہے۔

  • number — مثبت عداد صحیح (عمر، مصنوعات کی مقدار)۔
  • numberDecimal — اعشاری حصہ والے عداد (قیمتیں، وزن، قد آئ06cc راس لامدال 07۔
  • numberSigned — نشان والے عداد (درجہ حرارت، منصورـ۔
  • numberPassword — PIN کوڈ کے لیے چھپا ہوا ہندسے درج کرنا۔
kotlin
// اعشاری نقطے کے ساتھ عدادی درج
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// درج کردہ عدد کی جانچ
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone اور Email — مخصوصی کی بورڈز

TYPE_CLASS_PHONE ٹیلیفون کی بورڈ کو چالو کرتا ہے، جو ٹیلیفون نمبروں کے لیے معمولی ہندسے اور حروف ظاہر کرتا ہے: +, #, *, (, )۔ عدادی کی بورڈ کے برعکس، phone ایک اضافی موڈ میں حروف کا لی آؤٹ بھی دکھاتا ہے، کیونکہ ٹیلیفون نمبروں میں حروف هو سکتے ہیں (مثلاً، 1-800-FLOWERS)۔ phone کلاس میں کوئی اضافی پرچم نہیں ہے لیکن اکسٹنشن درج کرنے کے لیے TYPE_TEXT_VARIATION_PHONE_ETC کی حمایت کرتا ہے۔

TYPE_TEXT_VARIATION_EMAIL_ADDRESS ای میل کی بورڈ کو چالو کرتا ہے، جہاں @ کی علامت اور نقطہ مرکزی سکرین پر ہوتے ہیں، اور معمولی ڈومین اکسٹینشنز (.com، .net، .org) بھی دستیاب ہیں۔ Gboard @ کے بعد ٹائپ کرتے وقت مقبول ڈومین کے ساتھ بٹن بھی دیکھاتا ہے۔ ای میل کی بورڈ خودکار طور پر خودکار درستی کو بند کرتی ہے کیونکہ ای میل پتے میں غیر معیاری حروف کا امتزاج ہو سکتا ہے۔

Google Material Design Guidelines (2025) کے مطابق، ٹیلیفون فیلڈ کے لیے مزید سفارش کی جاتی ہے کہ android:digits وصف متعین کیا جائے، جو منظور حروف کے سیٹ کو محدود کرتا ہے۔ ای میل فیلڈ کے لیے، پاس ورڈ مینجر اور Google Autofill سے خودکار پر کرنے کی حمایت کے لیے autofillHints="email" متعین کرنا بھی اہم ہے۔

xml
<!-- Email keyboard with autofill -->
android:inputType="textEmailAddress"
android:importantForAutofill="yes"
android:autofillHints="emailAddress"

<!-- Phone keyboard with digit restriction -->
android:inputType="phone"
android:digits="0123456789+"

Password — پاس ورڈ کے لیے کی بورڈ

TYPE_TEXT_VARIATION_PASSWORD اور TYPE_NUMBER_VARIATION_PASSWORD حساس ڈیٹا کے لیے انپٹ موڈ ہیں۔ جب textPassword مقرر کیا جاتا ہے، درج کردہ حروف نقاط یا ستاروں کے طور پر ظاہر ہوتے ہیں (آنڈروئیڈ ورشن اور کی بورڈ پر منحصر)۔ اس موڈ میں کی بورڈ خودکار درستی اور صاحب کی ڈکشنری میں الفاظ کی حفاظت کو بند کرتی ہے، پیشینگوئی انپٹ خوبیوں کے ذریعے پاس ورڈ کے رساو کو روکتی ہے۔

Password کی بورڈ فیلڈ مواد کی اسکرین شاٹ لینے کی صلاحیت (FLAG_SECURE پرچم) کو بھی بند کرتی ہے، حالانکہ یہ روائیہ مخصوص کی بورڈ کے نفاذ پر منحصر ہے۔ Android 8.0 (API 26) سے شروع کرتے ہوئے، پاس ورڈ کی بورڈز importantForAutofill="yes" وصف مقرر ہونے پر پاس ورڈ مینجرز کے ذریعے خودکار پر کرنے کی حمایت کرتی ہیں۔

Android Security Recommendations (2025) کے مطابق، پاس ورڈ فیلڈ کے لیے مزید سفارش کی جاتی ہے: بہت لمبے پاس ورڈز (جو ڈیٹابیس حملے کا ویکٹر ہو سکتے ہیں) کو روکنے کے لیے maxLength مقرر کریں، inputType="textPassword" کو TextInputLayout اور endIconMode="password_toggle" کے ساتھ استعمال کریں تاکہ صاحب فارم جمع کرنے سے پہلے درج کردہ پاس ورڈ کو چیک کر سکے۔

xml
<!-- Password field with show/hide icon -->
@+id/tilPasswordField
app:endIconMode="password_toggle">

    @+id/etPasswordField
    android:inputType="textPassword"
    android:maxLength="64"
    android:importantForAutofill="yes" />

</com.google.android.material.textfield.TextInputLayout>

کوڈ میں Keyboard Type کی ترتیب

Keyboard Type کی پروگرامیٹک ترتیب کو سیاق یا صاحب کے انپٹ کے مطابق متغیر طور پر کی بورڈ کے موڈ کو بدلنے کی اجازت دیتی ہے۔ مثلاً، فیلڈ کی قسم (متن/عدد/تاریخ) بدلتے وقت یا مقامی ترتیب بدلتے وقت۔ setInputType() طریقه ایک InputType بٹ ماسک قبول کرتا ہے اور اگر فیلڈ فوکس میں ہے تو فورن کی بورڈ کو اپڈیٹ کرتا ہے۔

متغیر قسم کی تبدیلی

kotlin
// متن اور عدادی درج کے درمیان سوئچ کریں
fun switchInputType(field: EditText, isNumeric: Boolean) {
    field.inputType = if (isNumeric) {
        InputType.TYPE_CLASS_NUMBER or
            InputType.TYPE_NUMBER_FLAG_DECIMAL
    } else {
        InputType.TYPE_CLASS_TEXT or
            InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
    }
    field.setSelection(field.text.length)
}

موجودہ قسم کی جانچ

kotlin
// چیک کریں کہ فیلڈ عدادی ہے یا نہیں
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// چیک کریں کہ خودکار درستی فعال ہے یا نہیں
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

اکثر پوچے جانے والے سوالات

اگر Keyboard Type متعین نہ کیا جائے تو کیا ہوگا؟

اگر inputType متعین نہیں کیا گیا، تو EditText پہلے سے طے پر TYPE_CLASS_TEXT کو TYPE_TEXT_FLAG_MULTI_LINE پرچم کے ساتھ استعمال کرتا ہے۔ اس کا مطلب ایک معیاری QWERTY کی بورڈ اور کئی سطری انپٹ ہے۔ زیادہ تر فیلڈ کے لیے، کی بورڈ کے درست روائیے اور حروف کی چھان ٹ کو یقینی بنانے کے لیے inputType کو واضح طور پر متعین کرنے کی سفارش کی جاتی ہے۔

"Enter" کے بجائے "Done" بٹن کے ساتھ کی بورڈ کیسے بنائیں؟

EditText پر android:imeOptions="actionDone" وصف استعمال کریں۔ یہ Enter بٹن کو Done بٹن سے بدل دے گا۔ دیگر اختیارات: actionSearch (مگنیفائنگ گلاس)، actionNext (دائیں تیر)، actionSend (بھیجیں)۔ کوڈ میں OnEditorActionListener کے ذریعے دباؤ کو ہینڈل کریں۔

کیا کسی مخصوص فیلڈ کے لیے کی بورڈ کی وائبریشن بند کی جا سکتی ہے؟

کسی مخصوص فیلڈ کے لیے وائبریشن بند نہیں کی جا سکتی — یہ ایک سیسٹم ترتیب ہے جسے کی بورڈ کی ترتیبات میں صاحب کنٹرول کرتا ہے۔ تاہم، آپ EditText پر android:focusable="false" وصف مقرر کرکے یا dispatchTouchEvent کے ذریعے نمائش کو اوررائیڈ کرکے کی بورڈ کو مکمل طور پر ظاہر ہونے سے روک سکتے ہیں۔

متن کوپی کرنے کی صلاحیت کے ساتھ صرف پڑھنے کا فیلڈ کیسے بنائیں؟

android:inputType="none" مقرر کریں یا پروگرامیٹک طور پر editText.setKeyListener(null) کو کال کریں۔ فیلڈ متن ظاہر کرے گا، لیکن فوکس کرنے پر کی بورڈ ظاہر نہیں ہوگی۔ صاحب متن کو منتخب اور کوپی کر سکے گا، لیکن اسے ترمیم نہیں کر سکے گا۔ متبادل کے طور پر textIsSelectable="true" کے ساتھ TextView استعمال کیا جا سکتا ہے۔

setInputType() کے بعد کی بورڈ کیوں نہیں بدلتی؟

setInputType() کو کال کرنے کے بعد، آپ کو کی بورڈ کو دوبارہ ظاہر کرنے کی ضرورت ہے، کیونکہ سیسٹم IME کو خودکار طور پر اپڈیٹ نہیں کر سکتا۔ اپڈیٹ کو مجبور کرنے کے لیے InputMethodManager.restartInput(view) کو کال کریں۔ اگر فیلڈ فوکس میں نہیں ہے، پہلے requestFocus() کو کال کریں، پھر restartInput کو کال کریں۔

خلاصہ

  • Keyboard Type Android انپٹ فیلڈ کے لیے کی بورڈ کے لی آؤٹ، چھان ٹ اور روائیے کو تعریف کرتا ہے۔
  • text — خودکار درستی، بڑے حروف اور کئی سطری کے لیے مبدلوں کے ساتھ معیاری QWERTY کی بورڈ۔
  • number — signed اور decimal اختیارات کے ساتھ عداد صحیح اور اعشاری کے لیے عدادی کی بورڈ۔
  • phone — ہندسوں، +, #, * اور حرفی عداد کی حمایت کے ساتھ ٹیلیفون کی بورڈ۔
  • email — @، نقطہ اور ڈومین اکسٹینشنز تک تیز رسائی کے ساتھ کی بورڈ۔
  • textPassword — خودکار درستی اور ڈکشنری کی حفاظت کے ساتھ خودکار درستی اور ڈکشنری کی حفاظت کے ساتھ چھپا انپٹ۔
  • imeOptions کی بورڈ پر عمل کے بٹن (Done، Search، Next، Send) کو ترتیب دیتا ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

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

مزید پڑھیں