मेरे पास मेरे लेआउट में एक AutoCompleteTextView है। मेरे पास AutoCompleteTextView में मौजूद वही आइटम चुनने का एक वैकल्पिक तरीका भी है।जब पाठ प्रोग्रामेटिक रूप से सेट किया जाता है तो मैं स्वत: पूर्ण ड्रॉपडाउन से कैसे बच सकता हूं?
autoCompleteTextView.setText(valueFromAlternativeSource);
जहां valueFromAlternativeSource
वैध स्वत: पूर्ण विकल्पों में से एक है: जब वैकल्पिक तरीका चुना जाता है, मैं के माध्यम से AutoCompleteTextView में मान। इसके साथ समस्या यह है कि सेटटाक्स्ट कहा जाता है जब स्वत: पूर्ण ड्रॉपडाउन प्रकट होता है। इसके बाद के संस्करण के बाद निम्नलिखित लाइन डालने से काम नहीं करता:
autoCompleteTextView.dismissDropDown(); //Doesn't work. Why?
क्यों लटकती खारिज पर कोई भी विचार नहीं कर रहा है या अन्य तरीकों से मैं लटकती खारिज कर सकता है?
autoCompleteTextView.setText(valueFromAlternativeSource);
autoCompleteTextView.setDropDownHeight(0);
autoCompleteTextView.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
autoCompleteTextView.setDropDownHeight(LayoutParams.WRAP_CONTENT);
}
}
आपका समाधान काम नहीं करता है क्योंकि setText (CharSequence) विधि एसिंक्रोनस काम शुरू करती है। जब भी टेक्स्ट बदलता है, तो एडाप्टर का फ़िल्टर दिखाने के लिए संभावित प्रस्तावों के लिए फ़िल्टर करने के लिए उपयोग किया जाता है। चूंकि फ़िल्टर में काफी समय लग सकता है, इसे असीमित रूप से कहा जाता है। कुछ समय बाद फ़िल्टर वापस आता है और यूआई थ्रेड फिर से प्रोसेसिंग करते समय इसके परिणाम प्रदर्शित होते हैं। इस समय इस समय डिलिवरीड्रॉपडाउन() विधि पूरी हो चुकी है - यही कारण है कि इस विधि का कोई प्रभाव नहीं पड़ता है। " स्रोत: http://www.grokkingandroid.com/how-androids-autocompletetextview-nearly-drove-me -नट्स/ – Singed