मेरे पास 3 AutoCompleteTextViews हैं, और मैं उन पर 2 स्ट्रिंग [] एडाप्टर पंजीकृत करना चाहता हूं। वर्तमान में, मैं यह कर रहा हूँ:ऑटोकंपलेटटेक्स्ट व्यू एडाप्टर, "छुपा" एडाप्टर?
atw_from.setAdapter(new ArrayAdapter(ctx, android.r.layout.simple_dropdown_item_1line, stages_adapter));
मान लीजिए कि मेरे उपयोगकर्ता टाइप करने के लिए "Középmező" चाहता है, वह टाइप करने के लिए "Koze" शुरू होता है और वह इस तक, यह बहुत सरल है Középmező चयन करने के लिए की पेशकश की जाएगी। लेकिन क्या होगा यदि उपयोगकर्ता उच्चारण टाइप करने के लिए बहुत आलसी है (और उनमें से बहुत आलसी हैं), इस प्रकार वह केवल कोज़ेमेज़ो टाइप करेगा, तो उसे कोई प्रस्ताव नहीं मिलेगा, क्योंकि मेरे स्ट्रिंग में कोई कोज़ेमेज़ो नहीं है []। जो चीज मैं चाहता हूं वह है, यदि वह "कोज़" में टाइप करता है, तो उसे कोज़ेपेमेज़ो की पेशकश की जानी चाहिए, इसलिए यदि वह उच्चारण का उपयोग नहीं करता है, तो उसे हमेशा उच्चारण के साथ वास्तविक शब्द की पेशकश की जाएगी।
वर्तमान में, मेरे पास एक सुंदर मूर्खतापूर्ण समाधान है, मेरे पास मूल [] के आकार के साथ एक स्ट्रिंग [] है, पहली छमाही में उच्चारण के साथ शब्द होते हैं, दूसरे में अव्यवस्थित संस्करण होते हैं। तो अब, यदि वह कोज़े टाइप करता है, तो उसे कोज़ेपेमेज़ो की पेशकश की जाएगी, और यदि वह कोज़ टाइप करता है, तो उसे कोज़ेपेमेज़ की पेशकश की जाएगी। यह काम करता है क्योंकि सर्वर दोनों संस्करणों को संसाधित कर सकता है, लेकिन यह सिर्फ मूर्खतापूर्ण दिखता है, और मैं इसे हल करना चाहता हूं।
जो मैं समझता हूं, मुझे एक पूर्ण कस्टम एडाप्टर बनाना चाहिए। क्या यह सबसे अच्छा तरीका है, या एसडीके में कोई समाधान शामिल है? अगर मुझे कस्टम एडेप्टर बनाना चाहिए, तो क्या कोई मुझे सही दिशा में इंगित कर सकता है कि यह कैसे करें? :)
संपादित करें: अपना खुद का जवाब जोड़ा, सभी के लिए काम करना चाहिए, दूसरे जवाब के लिए चीयर्स, जिसने मुझे अच्छी दिशा में निर्देशित किया!
आपको सुनने के लिए बहुत बुरा मेरे पिछले समाधान के साथ अपनी समस्या को हल करने में सक्षम नहीं है। यदि आप अभी भी रुचि रखते हैं, तो मैं कुछ हफ्ते पहले लिखने वाले समाधान को पोस्ट कर सकता हूं? हम सामान्य कार्यों को सरल बनाने के लिए इन-हाउस लाइब्रेरी का उपयोग करते हैं, लेकिन फ़िल्टरिंग भाग को अपेक्षाकृत छूटा जाना चाहिए। –
मैं हमेशा बेहतर समाधान में रुचि रखते हैं! :) यदि आपको कोई फर्क नहीं पड़ता, तो मैं इसे देख लूंगा। वैसे भी, आपके जवाब ने मुझे दिशा में इंगित किया, जिसने मुझे अपनी समस्या का समाधान किया, इसलिए आपके लिए पहले से ही एक बड़ा थक्स। इसके अलावा मैं इस ArrayAdapter के कुछ हिस्सों को पूरी तरह से लिखने के बारे में सोच रहा था, क्योंकि सामान्य रूप से, यह स्थिर हो सकता है, लेकिन मेरे मामले में, इसे कुछ अतिरिक्त सरणी की आवश्यकता नहीं होगी, इस प्रकार फ़िल्टरिंग की आवश्यकता वाले स्मृति/सीपीयू समय को कम किया जाएगा। – hundeva
ठीक है, मैंने कुछ कोड जोड़ा है जो मैं वर्तमान में अपने पहले के जवाब में अपनी परियोजनाओं में से एक में उपयोग कर रहा हूं। आपके लिए सबसे दिलचस्प बिट ओवरराइड 'getFilter' विधि होगा। उम्मीद है कि यह आपको समझ में आएगा। :) –