11

द्वारा संपादित सूची से चयनित प्रविष्टि का पता लगाने पर पता लगाएं मेरे पास AutoCompleteTextView है जो मैं एक लंबी सूची से किसी आइटम का चयन करने के लिए उपयोग करता हूं। उपयोगकर्ता केवल सूची से पूर्व निर्धारित आइटम का चयन करने में सक्षम होना चाहिए। वे अपना खुद का आइटम दर्ज नहीं कर पाएंगे।AutoCompleteTextView उपयोगकर्ता

जिस तरह से मैं यह सुनिश्चित करने के लिए जांच करता हूं कि वे सूची से केवल एक आइटम सबमिट करते हैं, बूलियन ध्वज को ट्रिगर करने के लिए setOnItemClickListener का उपयोग करना है। समस्या यह है कि बुलियन ध्वज सत्य पर सेट होने के बाद, वे अभी भी आइटम के चयनित पाठ को संपादित कर सकते हैं। मुझे इसका पता लगाने की जरूरत है और बुलियन ध्वज को फिर से झूठ में सेट करना होगा। मैं यह कैसे करु। मैंने onKeyDown का उपयोग करने के लिए एक सुझाव देखा है, लेकिन मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए।

उत्तर

42

आप पाठ जोड़ सकते हैं श्रोता बदल दिया है।

+0

आप इस समाधान के साथ उपयोगकर्ता द्वारा पूरी स्ट्रिंग को बदलने से ड्रॉपडाउन चयन को कैसे अलग करते हैं? – foo

1

TextWatcher लागू करें, जो आपको 3 विधियां देगा जो पाठ को बदलते समय लगातार कॉल बैक प्राप्त करेंगे। यदि स्ट्रिंग बढ़ती है, तो आपका उपयोगकर्ता फिर से टाइप कर रहा है। - एक आकर्षण की तरह काम करता

autoCompleteTextView.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {     

    } 

    @Override 
    public void afterTextChanged(Editable s) { 

    } 
}); 
-1

उपयोग

AutoCompleteTextView#setOnItemSelectedListener() 

:

+0

जबकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। –

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