প্রতিটি টেক্সট ফিল্ডে একটি নির্দিষ্ট ধরনের টেক্সট ইনপুট প্রয়োজন হয়, যেমন ইমেল অ্যাড্রেস, ফোন নম্বর বা সাধারণ টেক্সট। আপনার অ্যাপের প্রতিটি টেক্সট ফিল্ডের জন্য আপনাকে অবশ্যই ইনপুটের ধরন নির্দিষ্ট করে দিতে হবে, যাতে সিস্টেমটি উপযুক্ত সফট ইনপুট পদ্ধতি, যেমন অন-স্ক্রিন কীবোর্ড, প্রদর্শন করে।
একটি ইনপুট মেথডের সাথে উপলব্ধ বাটনের প্রকারভেদ ছাড়াও, আপনি বিভিন্ন আচরণ নির্দিষ্ট করতে পারেন, যেমন ইনপুট মেথডটি বানানের পরামর্শ দেবে কিনা, নতুন বাক্যের প্রথম অক্ষর বড় হাতের করবে কিনা, এবং ক্যারেজ রিটার্ন বাটনকে ' সম্পন্ন' বা ' পরবর্তী'-এর মতো কোনো অ্যাকশন বাটন দিয়ে প্রতিস্থাপন করবে কিনা। এই পৃষ্ঠাটিতে দেখানো হয়েছে কীভাবে এই বৈশিষ্ট্যগুলো নির্দিষ্ট করতে হয়।
কিবোর্ডের ধরন নির্দিষ্ট করুন
আপনার টেক্সট ফিল্ডগুলির জন্য ইনপুট মেথড ঘোষণা করতে সর্বদা <EditText> এলিমেন্টে android:inputType অ্যাট্রিবিউটটি যোগ করুন।

phone ইনপুট ধরণ। উদাহরণস্বরূপ, আপনি যদি ফোন নম্বর প্রবেশ করানোর জন্য একটি ইনপুট পদ্ধতি চান, তাহলে "phone" ভ্যালুটি ব্যবহার করুন:
<EditText android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/phone_hint" android:inputType="phone" />

textPassword ইনপুট টাইপ। টেক্সট ফিল্ডটি যদি পাসওয়ার্ডের জন্য হয়, তাহলে "textPassword" ভ্যালুটি ব্যবহার করুন, যাতে টেক্সট ফিল্ডটি ব্যবহারকারীর ইনপুট গোপন রাখে:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
android:inputType অ্যাট্রিবিউটের সাথে বেশ কয়েকটি সম্ভাব্য মান নথিভুক্ত করা আছে, এবং আপনি ইনপুট মেথডের চেহারা ও অতিরিক্ত আচরণ নির্দিষ্ট করার জন্য কয়েকটি মান একত্রিত করতে পারেন।
বানান পরামর্শ এবং অন্যান্য আচরণ সক্রিয় করুন

textAutoCorrect যোগ করলে তা ভুল বানান স্বয়ংক্রিয়ভাবে সংশোধন করে দেয়। ` android:inputType অ্যাট্রিবিউটটি আপনাকে ইনপুট মেথডের জন্য বিভিন্ন আচরণ নির্দিষ্ট করার সুযোগ দেয়। সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো, যদি আপনার টেক্সট ফিল্ডটি সাধারণ টেক্সট ইনপুটের জন্য—যেমন কোনো টেক্সট মেসেজের জন্য—ব্যবহার করা হয়, তাহলে "textAutoCorrect" ভ্যালুটি দিয়ে স্বয়ংক্রিয় বানান সংশোধন চালু করুন।
আপনি android:inputType অ্যাট্রিবিউটের সাহায্যে বিভিন্ন আচরণ এবং ইনপুট মেথড স্টাইল একত্রিত করতে পারেন। উদাহরণস্বরূপ, এখানে দেখানো হলো কীভাবে এমন একটি টেক্সট ফিল্ড তৈরি করা যায় যা একটি বাক্যের প্রথম শব্দটিকে বড় হাতের অক্ষরে লেখে এবং বানান ভুলও স্বয়ংক্রিয়ভাবে সংশোধন করে:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
ইনপুট পদ্ধতির ক্রিয়া নির্দিষ্ট করুন
বেশিরভাগ সফট ইনপুট পদ্ধতিতে নিচের কোণায় একটি ইউজার অ্যাকশন বাটন থাকে, যা বর্তমান টেক্সট ফিল্ডের জন্য উপযুক্ত। ডিফল্টরূপে, সিস্টেম এই বাটনটি ' Next' বা ' Done' অ্যাকশনের জন্য ব্যবহার করে, যদি না আপনার টেক্সট ফিল্ড মাল্টি-লাইন টেক্সট সাপোর্ট করে—যেমন android:inputType="textMultiLine" এর ক্ষেত্রে—সেক্ষেত্রে অ্যাকশন বাটনটি একটি ক্যারেজ রিটার্ন হয়। তবে, আপনি অন্যান্য অ্যাকশনও নির্দিষ্ট করতে পারেন যা আপনার টেক্সট ফিল্ডের জন্য আরও উপযুক্ত হতে পারে, যেমন 'Send' বা 'Go' ।
কিবোর্ড অ্যাকশন বাটন নির্দিষ্ট করতে, "actionSend" বা "actionSearch" এর মতো একটি অ্যাকশন ভ্যালু সহ android:imeOptions অ্যাট্রিবিউটটি ব্যবহার করুন। উদাহরণস্বরূপ:

android:imeOptions="actionSend" ঘোষণা করেন, তখন সেন্ড বাটনটি প্রদর্শিত হয়। <EditText android:id="@+id/search" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/search_hint" android:inputType="text" android:imeOptions="actionSend" />
এরপর আপনি EditText এলিমেন্টের জন্য একটি TextView.OnEditorActionListener সংজ্ঞায়িত করে অ্যাকশন বাটনে চাপ শনাক্ত করতে পারেন। আপনার লিসেনারে, EditorInfo ক্লাসে সংজ্ঞায়িত উপযুক্ত IME অ্যাকশন ID-তে সাড়া দিন, যেমন IME_ACTION_SEND , যা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
কোটলিন
findViewById<EditText>(R.id.search).setOnEditorActionListener { v, actionId, event -> return@setOnEditorActionListener when (actionId) { EditorInfo.IME_ACTION_SEND -> { sendMessage() true } else -> false } }
জাভা
EditText editText = (EditText) findViewById(R.id.search); editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEND) { sendMessage(); handled = true; } return handled; } });
স্বয়ংক্রিয়ভাবে পূরণ করার পরামর্শ দিন
ব্যবহারকারীরা টাইপ করার সাথে সাথে যদি আপনি তাদের সাজেশন দেখাতে চান, তাহলে আপনি EditText এর AutoCompleteTextView নামক একটি সাবক্লাস ব্যবহার করতে পারেন। অটো-কমপ্লিট বাস্তবায়ন করতে, আপনাকে অবশ্যই একটি Adapter নির্দিষ্ট করতে হবে যা টেক্সট সাজেশনগুলো প্রদান করে। ডেটা কোথা থেকে আসছে, যেমন ডাটাবেস বা অ্যারে থেকে, তার উপর নির্ভর করে বিভিন্ন ধরনের অ্যাডাপ্টার উপলব্ধ রয়েছে।

AutoCompleteTextView এর উদাহরণ। নিম্নলিখিত পদ্ধতিতে ArrayAdapter ব্যবহার করে একটি অ্যারে থেকে সাজেশন প্রদানকারী একটি AutoCompleteTextView সেট আপ করার উপায় বর্ণনা করা হয়েছে:
- আপনার লেআউটে
AutoCompleteTextViewযোগ করুন। এখানে শুধু টেক্সট ফিল্ড সহ একটি লেআউট দেওয়া হলো:<?xml version="1.0" encoding="utf-8"?> <AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/autocomplete_country" android:layout_width="fill_parent" android:layout_height="wrap_content" />
- সেই অ্যারেটি সংজ্ঞায়িত করুন যাতে সমস্ত টেক্সট সাজেশন থাকবে। উদাহরণস্বরূপ, এখানে দেশের নামগুলির একটি অ্যারে রয়েছে:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="countries_array"> <item>Afghanistan</item> <item>Albania</item> <item>Algeria</item> <item>American Samoa</item> <item>Andorra</item> <item>Angola</item> <item>Anguilla</item> <item>Antarctica</item> ... </string-array> </resources>
- আপনার
ActivityবাFragmentএ, সাজেশন সরবরাহকারী অ্যাডাপ্টারটি নির্দিষ্ট করতে নিম্নলিখিত কোডটি ব্যবহার করুন:কোটলিন
// Get a reference to the AutoCompleteTextView in the layout. val textView = findViewById(R.id.autocomplete_country) as AutoCompleteTextView // Get the string array. val countries: Array<out String> = resources.getStringArray(R.array.countries_array) // Create the adapter and set it to the AutoCompleteTextView. ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries).also { adapter -> textView.setAdapter(adapter) }
জাভা
// Get a reference to the AutoCompleteTextView in the layout. AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country); // Get the string array. String[] countries = getResources().getStringArray(R.array.countries_array); // Create the adapter and set it to the AutoCompleteTextView. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries); textView.setAdapter(adapter);
পূর্ববর্তী উদাহরণে,
countries_arrayস্ট্রিং অ্যারের প্রতিটি আইটেমকে `simple_list_item_1লেআউটে থাকা একটিTextViewসাথে বাইন্ড করার জন্য একটি নতুনArrayAdapterইনিশিয়ালাইজ করা হয়েছে। এটি অ্যান্ড্রয়েড দ্বারা প্রদত্ত একটি লেআউট যা একটি তালিকার টেক্সটের জন্য একটি আদর্শ চেহারা প্রদান করে। -
setAdapter()কল করেAutoCompleteTextViewতে অ্যাডাপ্টারটি নির্ধারণ করুন।
