EditText के लिए स्वतः पूर्ण बंद करें?


123

वहाँ एक तरीका है प्रोग्रामेटिक रूप से उस ऑटोसुगेस्ट सूची को बंद करने का है जो आप EditText में टाइप करते हैं?

जवाबों:


122

मेरे पास एक ही सवाल था लेकिन मैं अभी भी अपनी XML फ़ाइल में इस विकल्प को सेट करना चाहता था इसलिए मैंने थोड़ा और शोध किया जब तक कि मुझे यह पता नहीं चला।

इस लाइन को अपने EditText में जोड़ें।

android:inputType="textFilter" 

यहां एक तरीका है। यदि आप "एंटर" कुंजी का उपयोग करने में सक्षम होना चाहते हैं तो इस लाइन का उपयोग करें।

android:inputType="textFilter|textMultiLine"

मेरा UPVOTE है! वास्तव में यह वास्तव में अच्छी तरह से काम करता है जब आप एक टेक्स्ट व्यू की तरह एडिट टेक्स्ट बनाना चाहते हैं।
sir_k

1
एंड्रॉइड 4.4 फोन के एक जोड़े में काम नहीं करता है
voghDev

एपीआई 24 / एंड्रॉइड 7.0: मैंने android:inputType="textPersonName"सुझाए गए पाठ के साथ प्रतिस्थापित किया लेकिन यह अभी भी सुझाव पंक्ति (माइक आइकन के साथ) को प्रदर्शित करता है।
नेप

120
android:inputType="textNoSuggestions"  

यह भी आप बेहतर पढ़ा था इस


5
ध्यान दें कि "textNoSuggestions" केवल एपीआई 5 और इसके बाद के संस्करण के लिए काम करता है।
18

89
@gyller को आपने 5 से कम API वाला कोई उपकरण देखा है?
क्रेकर 23

15
मेरे उपयोगकर्ताओं के 0.23% 1.6 (एपीआई स्तर 4) पर हैं। :)
जेरेमी लोगान

1
हालाँकि आप तब ENTER कुंजी खो देते हैं। यदि आप ENTER Android का उपयोग करने में सक्षम होना चाहते हैं: inputType = "textNoSuggestions | textMultiLine"
बारलोप

3
यह सुझावों को अक्षम करता है लेकिन फिर भी सुझाव पंक्ति दिखाता है (इसमें एक माइक विकल्प है)।
विपुलकुमार

61
android:inputType="textVisiblePassword" 

एक जादू की तरह काम करता है


3
मैं इस मार्ग पर नहीं जाऊंगा। यह एक हैक है और आप इसका उल्लेख नहीं करते हैं कि जब आप इसे पासवर्ड के लिए कहेंगे तो कीबोर्ड की अन्य विशेषताएं क्या बदल सकती हैं। "टेक्स्ट | textNoSuggestions" का उपयोग करें।
माइकल पीटरसन 19

2
@ P1X3L5 textNoSuggestions कई उपकरणों के लिए काम नहीं करता है। दुर्भाग्य से यह हैक तब तक आवश्यक है जब तक कि Google फिक्स नहीं करता
तारिक

1
मेरे लिए यह बेहतर था, यह कीबोर्ड के ऊपर की पट्टी को भी हटा देता है (नेक्सस 5) जो सभी उपकरणों के लिए सही नहीं है, लेकिन कुछ उपयोगकर्ताओं के लिए बेहतर प्रदर्शन देता है (यह भाषण इनपुट की क्षमता को भी बंद कर देता है)
अर्कादियुस सीज़ियोस्की

1
इसने .शब्द के अंत में जोड़े गए पीरियड चार को हटाने का काम किया यदि उस शब्द के बाद दो रिक्त स्थान टाइप किए गए हैं। मैंने इसे एक्शन बार सर्च व्यू के लिए इस्तेमाल किया ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
जीन बो

यह एकमात्र समाधान है जिसने मेरे लिए काम किया। प्रपत्र के माध्यम से आगे बढ़ने और एक फ़ील्ड पर लौटने पर अन्य उत्तर काम नहीं करते हैं। Google डोप का ऐसा समूह है। ऐसी सरल विशेषताओं को जारी करना जो अपूर्ण और खराब तरीके से परीक्षण की जाती हैं।
क्रोधितगीत

41

इसे करने के तरीके:

  1. प्रोग्राम के
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
  1. एक्सएमएल
android:inputType="textNoSuggestions"

यदि आपके पास पहले से ही कुछ झंडे हैं, तो:

  1. प्रोग्राम के
inputType = if (disableSuggestions) {
  InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
  inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
  1. एक्सएमएल
android:inputType="textNoSuggestions|textPassword"

22

सबसे अधिक विश्वसनीय दृष्टिकोण जो मैंने पाया है कि स्वत: पूर्ण होने से छुटकारा पाना है

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 

अपने EditText नियंत्रण पर। जैसा कि चार्ली ने इस पृष्ठ पर एक अलग उत्तर में बताया है,

android:inputType="textVisiblePassword"

इस ध्वज का XML संस्करण है।

आप इस ध्वज को साथ जोड़ सकते हैं

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

मैं InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS का बिना इनपुट टाइप के उपयोग कर रहा था।

एंड्रॉइड प्रोग्रामर एमुलेटर में EditText के लिए स्वत: पूर्ण / स्वतः पूर्ण को अक्षम करता है

जिसमें InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD का उपयोग करने का सुझाव दिया गया है।

मैंने यह कोशिश की (InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS के साथ) और इसने काम किया। आप क्यों यहाँ तक कि एक फोन है कि संकेत नहीं ले सकता है देख सकते हैं कि आप स्वत: पूर्ण होता नहीं करना चाहती है कि यह एक पासवर्ड क्षेत्र के लिए विकलांग होने के लिए अनुमति देने के लिए। हमारी सांस रोककर रखने के लिए, यह सबसे अच्छा तरीका हो सकता है कि हम ऐसे फोन से क्या चाहते हैं।

मेरे कुछ उपकरणों पर, इस ध्वज द्वारा फ़ॉन्ट को थोड़ा बदल दिया गया था - सबसे स्पष्ट रूप से एक ओह (ओ) से शून्य (0) को स्पष्ट रूप से अलग करने के लिए, जो स्पष्ट रूप से एक पासवर्ड प्रदर्शित करने के लिए महत्वपूर्ण होगा। लेकिन कम से कम यह काम किया, और नया फ़ॉन्ट बदसूरत नहीं था।

भले ही जिस पद पर मुझे यह सुझाव मिला वह पुराना था, जिस फ़ोन पर मैंने परीक्षण किया वह बहुत हाल ही में - सैमसंग गैलेक्सी नोट II (SPH-L900) स्टॉक एंड्रॉइड 4.1.2 स्प्रिंट से है। चयनित कीबोर्ड "सैमसंग कीबोर्ड" था और जाहिर तौर पर यह इस फोन के लिए डिफ़ॉल्ट था जब ग्राहक इसे स्प्रिंट से प्राप्त करता था। तो यह समस्या जाहिर तौर पर कम से कम कुछ महत्वपूर्ण सैमसंग लाइन फोनों के लिए वर्षों से बनी हुई है।

आप में से जो मेरे जैसे हैं, उनके पास सैमसंग टेस्ट डिवाइस नहीं है, यह महत्वपूर्ण जानकारी हो सकती है।


3
आज के फर्मवेयर के साथ सैमसंग S3 पर काम नहीं करता है। उफ़।
नाम

@SargeBorsch: क्या आप कह रहे हैं कि TYPE_TEXT_VARIATION_VISIBLE_PASSWORD के साथ-साथ TYPE_TEXT_FLAG_NO_SUGGESTIONS अभी भी आपके S3 पर एक ऑटो-पूर्ण करता है? मैं ऐसा हूं, क्या आप स्टॉक कीबोर्ड का उपयोग कर रहे हैं? मेरे पास एक S3 नहीं है, लेकिन अतीत में एक S3 पर मेरे ऐप (जो उपरोक्त दृष्टिकोण का उपयोग करता है) की कोशिश की है और कोई ऑटो-पूर्ण नहीं था। मेरे पास एक S4 एंड्रॉइड 4.4 (Cyanogenmod) है और यह ऑटो-पूर्ण भी नहीं है।
कार्ल

@SargeBorsch: यदि आप अपने S3 पर उपर्युक्त दृष्टिकोण का उपयोग करने वाले ऐप को आज़माना चाहते हैं, तो यहां मेरा है: play.google.com/store/apps/… यह सुनने के लिए इच्छुक होंगे कि क्या उसके नीचे चेक वर्ड फ़ील्ड है या नहीं! एप्लिकेशन (जो उपरोक्त झंडे का उपयोग करता है) आपके डिवाइस पर ऑटो-पूर्ण करने की कोशिश करता है। TIA।
कार्ल

धन्यवाद, इसे जल्द ही देख लेंगे
प्रदर्शन नाम

> "क्या आप कह रहे हैं कि TYPE_TEXT_VARIATION_VISIBLE_PASSWORD के साथ-साथ TYPE_TEXT_FLAG_NO_SUGGESTIONS अभी भी आपके S3 पर एक ऑटो-पूर्ण प्रदर्शन करता है?" हाँ बिल्कुल। यद्यपि ई-मेल प्रकार भी है, क्योंकि यह एक ईमेल इनपुट है ...
नाम

20

एंड्रॉइड संस्करण 8.0 या उससे ऊपर के लिए यह कोड काम नहीं कर रहा है और स्वत: पूर्ण टेक्स्टव्यू के लिए भी यह कोड काम नहीं कर रहा है, इसलिए मैं आपको सुझाव दूंगा कि आप नीचे दिए गए कोड का उपयोग 8.0 में ऑटो सुझावों को अक्षम करने के लिए करें या ऊपर एंड्रॉइड vesrion एडिटेक्स टेक्स्ट की इस संपत्ति का उपयोग करें : importantForAutofill = "नहीं"

                   <EditText
                            android:id="@+id/name"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:enabled="false"
                            android:focusable="false"
                            android:imeOptions="actionDone"
                            android:maxLength="80"
                            android:maxLines="1"
                            android:textColor="@color/colorBlack"
                            android:textColorHint="@color/colorBlack"
                            android:importantForAutofill="no"
                            android:textSize="@dimen/_12sdp"
                            app:bFontsEdt="light" />

और इस तरह के AutoComplete टेक्स्टव्यू के लिए इस फ़ील्ड को ऑटो सुझाव को अक्षम करने के लिए उपयोग करें android: importantForAutofill = "no : "

      <AutoCompleteTextView
                        android:id="@+id/autocompleteEditTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/_3sdp"
                        android:layout_marginTop="@dimen/_5sdp"
                        android:background="@null"
                        android:imeOptions="actionDone"
                        android:singleLine="true"
                        android:text=""
                        android:textColor="@color/colorBlack"
                        android:textColorHint="@color/colorGrayDark"
                        android:importantForAutofill="no"
                        android:textSize="@dimen/_12sdp" />

2
बहुत बढ़िया! यही एक चीज थी जिसने मेरे लिए काम किया।
लॉरेल थॉमसन

केवल एक चीज जो मेरे लिए काम करती है, thx @MaheshKeshvala, मेरे दिन को बचाने के लिए upvoted।
रवि वाणी

ऑटो-फिल कीबोर्ड-ऑटो पूर्ण नहीं है, वे अलग-अलग विशेषताएं हैं। ऑटो-फिल ओएस द्वारा संभाला जाता है, जबकि ऑटो-पूरा कीबोर्ड डेवलपर (उम्मीद) द्वारा नियंत्रित किया जाता है।
milosmns

10

आप इसका उपयोग करके इस समस्या को हल कर सकते हैं:

android:importantForAutofill="no" 

Android O में फ़ील्ड के लिए ऑटो-फिलिंग का समर्थन करने की सुविधा है, बस अपने xml में इसका उपयोग करें, यह ऑटोफिल संकेत को अक्षम कर देगा


7

जैसा कि यह अभी भी एक मुद्दा है, मैं इस उत्तर को पोस्ट करने जा रहा हूं। android: inputType = "textV अदृश्यPassword" काम करता है लेकिन यह अवांछनीय है, पहला क्योंकि यह इनपुट का गलत विवरण है और दूसरा क्योंकि यह जेस्चर टाइपिंग को अक्षम करता है!

इसके बजाय मुझे BOTH झंडे textNoSuggestions और textFilter का उपयोग करना पड़ा। या तो अकेले काम नहीं किया।

android:inputType="textCapSentences|textFilter|textNoSuggestions"

TextCapSentences अन्य कारणों से था। लेकिन इस इनपुट टाइप ने स्वाइप टाइपिंग को बनाए रखा और सुझाव टूलबार को अक्षम कर दिया।


7

मुझे 4.4.4 पर चलने वाले सैमसंग फोन पर यह बात मिल रही थी। इससे मेरी समस्या हल हो गई

android:inputType="text|textVisiblePassword|textNoSuggestions"

सैमसंग 8.1 पर चल रहा है। केवल एक चीज जो मेरे लिए काम करती थी वह थी android: inputType = "textV अदृश्यPassword | textNoSuggestions"
Eino Gourdin

4

ठीक है, समस्या थी - ग्रहण में आपको ध्वज नाम के लिए सुझाव नहीं मिलता है: textNoSuggestion

और आप इसे main.xml (जहाँ आप UI डिज़ाइन करते हैं) में सेट नहीं कर सकते क्योंकि इनपुट टाइप के लिए वह विशेषता पहचानी नहीं गई है। इसलिए आप इसे int const का उपयोग करके कोड में सेट कर सकते हैं:

EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);

और मुझे इस एक के लिए आंकड़ा जवाब देने में मदद करने के लिए धन्यवाद jasta00


6
यह काम करता है ... .setInputType (InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
w.donahue

2
सहमत हैं, निरंतर मूल्य का उपयोग न करें
डेविड स्लैब-कॉंट

1
@ kape123 आप Android सेट नहीं कर सकते हैं: inputType = "textNoSuggestions" xml में क्योंकि आपका बिल्ड लक्ष्य 5 एपीआई से कम है
kreker

ध्यान दें कि कुछ सैमसंग फोनों के लिए मानक कीबोर्ड स्वतः पूर्ण नहीं होता है जो InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS द्वारा बंद नहीं किया जाता है। एक व्यक्ति सुझाव देता है कि इसमें InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD का उपयोग करें बल्कि पुरानी पोस्ट: stackoverflow.com/questions/6281514/…
कार्ल


1
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

इससे आपको मदद मिलेगी।


1
    // 100% correct & tested
    txtKey = (EditText) view.findViewById(R.id.txtKey);
    txtKey.setPrivateImeOptions("nm");
    txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
    }

0

आप बस EditText की setThreshold()विधि का उपयोग कर सकते हैं । जब आप भविष्यवाणियों को नहीं दिखाना चाहते हैं, तो मान लीजिए कि हम 100 को सेट करते हैं। यदि आप भविष्यवाणियों को फिर से सक्रिय करना चाहते हैं, तो इसे अपनी आवश्यकताओं के आधार पर 1 या 2 जैसे छोटे इंट में वापस सेट करें।


EditText के लिए कोई सेट थ्रेशोल्ड () नहीं है, क्या आप कृपया समझा सकते हैं?
बेहेलिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.