हर टेक्स्ट फ़ील्ड में एक खास तरह के टेक्स्ट इनपुट की ज़रूरत होती है. जैसे, ईमेल पता, फ़ोन नंबर या सादा टेक्स्ट. आपको अपने ऐप्लिकेशन में हर टेक्स्ट फ़ील्ड के लिए इनपुट टाइप तय करना होगा, ताकि सिस्टम आपको सॉफ़्ट इनपुट के सही तरीके का इस्तेमाल करें, जैसे कि ऑन-स्क्रीन कीबोर्ड.
इनपुट के तरीके में उपलब्ध बटन के अलावा, अन्य व्यवहार भी तय किए जा सकते हैं. जैसे, क्या इनपुट का तरीका स्पेलिंग के सुझाव देता है, नए वाक्यों को कैपिटल में रखता है, और नई लाइन शुरू करने का बटन, जिस पर कार्रवाई बटन हो, जैसे कि हो गया या आगे बढ़ें. इस पेज में बताया गया है कि इन विशेषताओं को शामिल करने के लिए.
कीबोर्ड का टाइप बताएं
अपनी टेक्स्ट फ़ील्ड के लिए इनपुट का तरीका बताएं. इसके लिए,
android:inputType
एट्रिब्यूट को
<EditText>
एलिमेंट.
उदाहरण के लिए, अगर फ़ोन नंबर डालने के लिए आपको इनपुट का तरीका चाहिए, तो
"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"
वैल्यू का इस्तेमाल करें, ताकि टेक्स्ट फ़ील्ड
उपयोगकर्ता के इनपुट को छिपाता है:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />
android:inputType
एट्रिब्यूट के साथ कई संभावित वैल्यू दी गई हैं,
कुछ वैल्यू को मिलाकर, इनपुट का तरीका बताया जा सकता है. साथ ही, कुछ अन्य वैल्यू भी जोड़ी जा सकती हैं.
व्यवहार.
स्पेलिंग के सुझाव देने और अन्य कार्रवाइयाँ करने की सुविधा चालू करें
android:inputType
एट्रिब्यूट की मदद से, इनपुट के लिए अलग-अलग व्यवहार बताए जा सकते हैं
तरीका. सबसे ज़रूरी बात, अगर आपका टेक्स्ट फ़ील्ड बेसिक टेक्स्ट इनपुट के लिए है—जैसे कि
मैसेज—"textAutoCorrect"
की मदद से, स्पेलिंग में अपने-आप सुधार होने की सुविधा चालू करें
वैल्यू.
अलग-अलग व्यवहार और इनपुट के तरीकों की स्टाइल को
android:inputType
एट्रिब्यूट की वैल्यू सबमिट करें. उदाहरण के लिए, यहां टेक्स्ट फ़ील्ड बनाने का तरीका बताया गया है,
वाक्य के पहले शब्द को बड़ा करता है और गलत वर्तनी को भी अपने-आप ठीक करता है:
<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... />
इनपुट के तरीके से जुड़ी कार्रवाई तय करें
ज़्यादातर सॉफ़्ट इनपुट के तरीकों में, सबसे नीचे कोने में उपयोगकर्ता के लिए ऐक्शन बटन होता है, जो इन कामों के लिए सही होता है
वर्तमान टेक्स्ट फ़ील्ड. डिफ़ॉल्ट रूप से, सिस्टम इस बटन का इस्तेमाल आगे बढ़ें या
अगर आपके टेक्स्ट फ़ील्ड में एक से ज़्यादा लाइन वाले टेक्स्ट काम करते हैं, तो कार्रवाई हो गई है. जैसे,
android:inputType="textMultiLine"
—इस मामले में, ऐक्शन बटन एक नई लाइन है
वापसी. हालांकि, आपके पास ऐसी अन्य कार्रवाइयां तय करने का विकल्प भी होता है जो आपके टेक्स्ट फ़ील्ड के लिए ज़्यादा सही हों.
जैसे कि भेजें या जाएं.
कीबोर्ड के ऐक्शन बटन को चुनने के लिए,
android:imeOptions
"actionSend"
या "actionSearch"
जैसी कार्रवाई वैल्यू वाली एट्रिब्यूट की वैल्यू सबमिट करें. इसके लिए
उदाहरण:
<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" />
इसके बाद,
TextView.OnEditorActionListener
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
EditText
एलिमेंट के लिए. अपने
लिसनर,
EditorInfo
क्लास,
जैसे कि
IME_ACTION_SEND
,
जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
Kotlin
findViewById<EditText>(R.id.search).setOnEditorActionListener { v, actionId, event -> return@setOnEditorActionListener when (actionId) { EditorInfo.IME_ACTION_SEND -> { sendMessage() true } else -> false } }
Java
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
जोड़ें. यहां सिर्फ़ टेक्स्ट वाला लेआउट दिया गया है फ़ील्ड:<?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
, इस कोड का इस्तेमाल करके उस अडैप्टर की जानकारी दें जो सुझाव उपलब्ध कराता है:Kotlin
// 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) }
Java
// 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);
पिछले उदाहरण में, हर आइटम को बाइंड करने के लिए नया
ArrayAdapter
शुरू होता हैcountries_array
स्ट्रिंग अरे कोTextView
जो इसमें मौजूद हैsimple_list_item_1
लेआउट. यह लेआउट Android की ओर से उपलब्ध कराया गया है. का इस्तेमाल, सूची में टेक्स्ट के लिए स्टैंडर्ड तौर पर किया. -
कॉल करके
AutoCompleteTextView
को अडैप्टर असाइन करेंsetAdapter()
.