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 — দশমিক অংশসহ সংখ্যা (মূল্য, ওজন, উচ্চতা)।
  • 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 ফোন কিবোর্ড সক্রিয় করে, যা ফোন নম্বরের জন্য সাধারণ অঙ্ক এবং প্রতীক প্রদর্শন করে: +, #, *, (, ). সংখ্যা কিবোর্ডের বিপরীতে, ফোন একটি অতিরিক্ত মোডে অক্ষর বিন্যাসও দেখায়, কারণ ফোন নম্বরে অক্ষর থাকতে পারে (যেমন, 1-800-FLOWERS)। ফোন ক্লাসের কোনো অতিরিক্ত ফ্ল্যাগ নেই তবে এক্সটেনশন প্রবেশের জন্য 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 সেট করা হয়, প্রবেশ করানো অক্ষর বিন্দু বা তারকাচিহ্ন হিসেবে দেখানো হয় (Android সংস্করণ এবং কিবোর্ডের উপর নির্ভর করে)। এই মোডে কিবোর্ড অটোকরেক্ট এবং ব্যবহারকারী অভিধানে শব্দ সংরক্ষণ নিষ্ক্রিয় করে, ভবিষ্যদ্বাণীমূলক ইনপুট বৈশিষ্ট্যের মাধ্যমে পাসওয়ার্ড ফাঁস রোধ করে।

Password কিবোর্ড ফিল্ডের বিষয়বস্তুর স্ক্রিনশট নেওয়ার ক্ষমতা (FLAG_SECURE ফ্ল্যাগ) নিষ্ক্রিয় করে, যদিও এই আচরণ নির্দিষ্ট কিবোর্ড বাস্তবায়নের উপর নির্ভর করে। Android 8.0 (API 26) থেকে, পাসওয়ার্ড কিবোর্ড importantForAutofill="yes" অ্যাট্রিবিউট সেট থাকলে পাসওয়ার্ড ম্যানেজারের মাধ্যমে অটোফিল সমর্থন করে।

Android Security Recommendations (2025) অনুসারে, পাসওয়ার্ড ফিল্ডের জন্য আরও সুপারিশ করা হয়: খুব দীর্ঘ পাসওয়ার্ড প্রতিরোধে maxLength সেট করুন (যা ডেটাবেস আক্রমণ ভেক্টর হতে পারে), TextInputLayout এবং endIconMode="password_toggle"-এর সাথে inputType="textPassword" ব্যবহার করুন যাতে ব্যবহারকারী ফর্ম জমা দেওয়ার আগে প্রবেশ করানো পাসওয়ার্ড পরীক্ষা করতে পারে।

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" অ্যাট্রিবিউট ব্যবহার করুন। এটি এন্টার বাটনকে 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন