इनपुट का तरीका किस तरह का है, यह बताएं

लिखने का तरीका आज़माएं
Android के लिए, Jetpack Compose हमारा सुझाया गया यूज़र इंटरफ़ेस (यूआई) टूलकिट है. Compose में टच और इनपुट इस्तेमाल करने का तरीका जानें.

हर टेक्स्ट फ़ील्ड में एक खास तरह के टेक्स्ट इनपुट की ज़रूरत होती है. जैसे, ईमेल पता, फ़ोन नंबर या सादा टेक्स्ट. आपको अपने ऐप्लिकेशन में हर टेक्स्ट फ़ील्ड के लिए इनपुट टाइप तय करना होगा, ताकि सिस्टम आपको सॉफ़्ट इनपुट के सही तरीके का इस्तेमाल करें, जैसे कि ऑन-स्क्रीन कीबोर्ड.

इनपुट के तरीके में उपलब्ध बटन के अलावा, अन्य व्यवहार भी तय किए जा सकते हैं. जैसे, क्या इनपुट का तरीका स्पेलिंग के सुझाव देता है, नए वाक्यों को कैपिटल में रखता है, और नई लाइन शुरू करने का बटन, जिस पर कार्रवाई बटन हो, जैसे कि हो गया या आगे बढ़ें. इस पेज में बताया गया है कि इन विशेषताओं को शामिल करने के लिए.

कीबोर्ड का टाइप बताएं

अपनी टेक्स्ट फ़ील्ड के लिए इनपुट का तरीका बताएं. इसके लिए, android:inputType एट्रिब्यूट को <EditText> एलिमेंट.

फ़ोन इनपुट
पहली इमेज. 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 इनपुट टाइप.

अगर टेक्स्ट फ़ील्ड पासवर्ड के लिए है, तो "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"
    ... />

इनपुट के तरीके से जुड़ी कार्रवाई तय करें

ज़्यादातर सॉफ़्ट इनपुट के तरीकों में, सबसे नीचे कोने में उपयोगकर्ता के लिए ऐक्शन बटन होता है, जो इन कामों के लिए सही होता है वर्तमान टेक्स्ट फ़ील्ड. डिफ़ॉल्ट रूप से, सिस्टम इस बटन का इस्तेमाल आगे बढ़ें या अगर आपके टेक्स्ट फ़ील्ड में एक से ज़्यादा लाइन वाले टेक्स्ट काम करते हैं, तो कार्रवाई हो गई है. जैसे, android:inputType="textMultiLine"—इस मामले में, ऐक्शन बटन एक नई लाइन है वापसी. हालांकि, आपके पास ऐसी अन्य कार्रवाइयां तय करने का विकल्प भी होता है जो आपके टेक्स्ट फ़ील्ड के लिए ज़्यादा सही हों. जैसे कि भेजें या जाएं.

कीबोर्ड के ऐक्शन बटन को चुनने के लिए, android:imeOptions "actionSend" या "actionSearch" जैसी कार्रवाई वैल्यू वाली एट्रिब्यूट की वैल्यू सबमिट करें. इसके लिए उदाहरण:

भेजें बटन
चौथी इमेज. इसके बाद, आपको भेजें बटन दिखेगा 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" />

इसके बाद, 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 का उदाहरण सुझाव शामिल हैं.

नीचे दिए गए प्रोसेस में, उस AutoCompleteTextView को सेट अप करने का तरीका बताया गया है जो का इस्तेमाल करके कलेक्शन में से सुझाव देता है ArrayAdapter:

  1. अपने लेआउट में 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" />
    
  2. वह अरे तय करें जिसमें टेक्स्ट के सभी सुझाव शामिल हों. उदाहरण के लिए, यहां देशों के नाम की कलेक्शन:
    <?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>
    
  3. आपके 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 की ओर से उपलब्ध कराया गया है. का इस्तेमाल, सूची में टेक्स्ट के लिए स्टैंडर्ड तौर पर किया.

  4. कॉल करके AutoCompleteTextView को अडैप्टर असाइन करें setAdapter().