2011-06-08 26 views
40

में EditText के लिए स्वत: पूर्ण/autosuggest को निष्क्रिय लक्ष्य निर्धारण Android 2.2एंड्रॉयड प्रोग्राम के रूप में एमुलेटर

मैं निम्नलिखित प्रश्नों के उत्तर को पढ़ लिया है:

Turn off autosuggest for EditText?

Android: Multiline & No autosuggest in EditText

मैं निम्नलिखित रूपों की कोशिश की है सुझावों पर:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER); 

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER); 

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

अधिकांश डिवाइसों पर इन सभी कार्यों का परीक्षण किया जा रहा है (Droid X, Droid 2, थंडरबॉल्ट, अविश्वसनीय) लेकिन कम से कम 1 डिवाइस (सैमसंग जीटी i5500) पर काम नहीं करते हैं।

क्या प्रोग्रामेटिक रूप से एडिट टेक्स्ट के लिए स्वतः पूर्ण/स्वत: सुझाव अक्षम करने के लिए कोई अन्य तरीका है जिस तरह से एमुलेटर और कुछ डिवाइस पहचानेंगे और सम्मान करेंगे? इस

android:inputType="text|textNoSuggestions" 

हैं न, और न ही ऊपर काम दृष्टिकोण, तो यह लगभग निश्चित रूप से एमुलेटर और अन्य उपकरण के साथ एक समस्या है, और:

+1

कृपया ध्यान रखें कि ये सभी इनपुट विधि संपादक को संकेत देते हैं। उन्हें सम्मानित करने के लिए किसी भी इनपुट विधि संपादक के लिए कोई आवश्यकता नहीं है। इसलिए, यह सब गारंटी है कि हार्डवेयर के कुछ टुकड़े, या कुछ तीसरे पक्ष के आईएमई होंगे, जो अनुरोध का सम्मान करने में विफल रहते हैं। अब, मैं उम्मीद करता हूं कि * एमुलेटर * उनका सम्मान करेगा, क्योंकि इसमें मानक इनपुट विधि संपादक है, लेकिन मैंने सुझावों को दबाने की कोशिश नहीं की है। – CommonsWare

+0

@gyoda क्या आप अंततः एक समाधान ढूंढने में सक्षम थे जो एमुलेटर और सभी उपकरणों पर काम करता है? – hopia

+0

@hopia एंड्रॉइड जोड़ना: inputType = "textVisiblePassword" मेरे सभी उपयोग मामलों के लिए काम करना प्रतीत होता है। साथ ही, सुनिश्चित करें कि आप एम्यूलेटर में जापानी आईएमई का उपयोग नहीं कर रहे हैं। – gyoda

उत्तर

42

वोडाफोन 845 (2.1) के लिए, हुवाई 8800 (2.2) डिवाइस, टेक्स्ट विज़िबल पासवर्ड शब्द भविष्यवाणी को रोकने के लिए प्रतीत होता है।

vendorId.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 

या

एंड्रॉयड: inputType = "textVisiblePassword"

+5

इस बारे में सावधान रहें, गैर-अंग्रेज़ी कीबोर्ड पर यह भाषा को टॉगल करने जैसी कुछ विशेषताओं को अक्षम कर सकता है। – Cookster

+0

आप यह दिखा रहे हैं कि कोड बनाम इसे XML लेआउट फ़ाइल में कैसे कर रहा है। लेकिन आप विभिन्न झंडे दे रहे हैं। उपयोग करने के लिए सही ध्वज कौन सा है? –

25

लेआउट एक्सएमएल में, अपने EditText में निम्नलिखित एट्रीब्यूट जोड़ने आपको सीधे निर्माताओं से संपर्क करना चाहिए।

यह भी देखें: android:inputType (ध्यान दें कि EditTextTextView का एक उपवर्ग है, जिसके कारण यह विशेषता भी EditTexts के लिए काम करता है)।

+0

यह उत्तर गलत है, तो आप एंड्रॉयड अपने EditText एक्सएमएल के लिए निम्न संपत्ति जोड़ने के लिए: inputType = "textFilter" – Animesh

+1

फिल, मुझे लगता है कि आप गतिविधि के xml फ़ाइल, नहीं AndroidManifest – user674669

+0

गलत उत्तर – Noman

1

मैं एमुलेटर में एक ही समस्या के साथ लड़ रहा था। परीक्षण करते समय, मुझे एहसास हुआ कि जो दिखाई दे रहा था वह सामान्य स्वत: पूर्ण नहीं था, लेकिन एक विशेष एशियाई चरित्र पूर्वावलोकन (संभवतः क्योंकि इसे एक एशियाई चरित्र उत्पन्न करने के लिए कई कुंजी की आवश्यकता होती है)। इसलिए मैंने भाषा को अंग्रेजी में सेट करके हल किया। मुझे लगता है कि मैं जो देख रहा था वह "कुंजी पूर्वावलोकन" विकल्प था "भाषा कीबोर्ड" में "जापानी आईएमई" सेटिंग के तहत सूचीबद्ध।

मुझे लगता है कि कुंजीपटल हैंडलिंग और भाषा समर्थन में बिना किसी व्यक्तिगत ऐप के इसे अक्षम करना मुश्किल होगा।

-3

जवाब के रूप में सही acceted दोषपूर्ण है।ऑटो अक्षम करने के लिए सुझाव है

android:inputType="textFilter" 
+0

कृपया मेरा पूरा प्रश्न पढ़ें। मैंने पहले ही एंड्रॉइड की कोशिश की है: inputType = "textFilter"। – gyoda

2

आप वर्ग AutoCompleteTextView उपयोग कर सकते हैं अपने EditText एक्सएमएल के लिए निम्न संपत्ति जोड़ सकते हैं और अनुकूलक में घटना 'oninput' कुछ भी नहीं AutoCompleteTextView Class Reference

उदाहरण

public class CountriesActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.countries); 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
    AutoCompleteTextView textView = (AutoCompleteTextView) 
      findViewById(R.id.countries_list); 
    textView.setAdapter(adapter); 
    } 

    private static final String[] COUNTRIES = new String[] {""}; 
} 
-1

जिसमें सेट इनपुट, निम्नलिखित फ़ंक्शन चला गया:

function RefreshAutoComplete(elm) { 
elm.keyup(); 
elm.focus(); 
} 
,210

मैं पूरा मैन्युअल ऑटो चलाने के लिए, और यह काम करता

आप सभी मदद

14

मैं सब से ऊपर और ऊपर में से कोई भी कोशिश की है के लिए धन्यवाद वास्तव में मुझे मदद मिली। मैं उपलब्ध InputTypes माध्यम से खोज लिया है और मैं एक समाधान है, जो TYPE_TEXT_FLAG_AUTO_COMPLETE हुआ के साथ आया है:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

इसके विवरण से:

यह आम तौर पर इसका मतलब है कि इनपुट विधि उम्मीदवारों को स्वयं नहीं दिखायी जानी चाहिए, लेकिन संपादक के लिए अपने समापन/उम्मीदवारों को InputMethodSession.displayCompletions() से आपूर्ति करने की उम्मीद कर सकते हैं।

मैं निर्दिष्ट नहीं किया है किसी भी पूर्ण करने सेट और एक परिणाम के रूप में मैं किसी भी स्वतः सुझाव नहीं मिल रहा हूँ।

पीएस। उपरोक्त प्रशंसा में उल्लिखित InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD इस चाल को भी करता है, लेकिन यह भी कीबोर्ड में भाषा को टॉगल करने के लिए अक्षम करता है।

+0

लगता है कि यह उत्तर स्वीकार्य होना चाहिए। – Michael

+1

यह सबसे उपयुक्त समाधान है, अन्य हैक्स इमो – behelit

+1

सभी समाधान हैकी हैं, लेकिन मुझे लगता है कि यह कम से कम हैकी है :) –

0

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

+1

एडिटटेक्स्ट में सेट थ्रेसहोल्ड() विधि नहीं है। – Dima

1

आप किसी भी संपादन पर ऑटो सुझाव को अक्षम करने के लिए निम्नलिखित का भी उपयोग कर सकते हैं।

<EditText> 
android:inputType="textNoSuggestions|textVisiblePassword" 
</EditText> 

यह मेरे लिए काम करता है।

5

व्यक्तिगत रूप से, इस कोड को मेरी मदद:

autoCompleteTextView.setAdapter(null); 
autoCompleteTextView.setText(address); 
autoCompleteTextView.setAdapter(adapter); 

मैं सुझावों को अक्षम करना चाहते हैं जब मैं पाठ सेट तो मैं एडाप्टर को हटाने और बाद मैं setText कहते हैं, मैं इसे वापस।

इसलिए यदि आप सुझाव को निष्क्रिय करना चाहते सिर्फ का उपयोग करें:

autoCompleteTextView.setAdapter(null); 
2

android:inputType="textNoSuggestions|textVisiblePassword" का उपयोग Edittext समस्या को ठीक करने के लिए।

संबंधित मुद्दे