9

मैं webservice से तारों की एक सूची पुनर्प्राप्त कर रहा हूं और अंतर्निहित AutoCompleteTextField फ़िल्टरों के बावजूद मैं उन्हें AutoCompleteTextField पर सूचीबद्ध करना चाहता हूं।AutoCompleteTextView - फ़िल्टरिंग अक्षम करें

मैं यह कैसे कर सकता हूं? क्या इसके अंदरूनी फ़िल्टरिंग को आसानी से अक्षम करने का कोई तरीका है (अधिमानतः बिना वर्गीकरण के) मैंने अपने सभी परिणामों को ArrayAdapter में लोड किया है, समस्या यह है कि उनमें से कुछ फ़िल्टरिंग के कारण दिखाई नहीं देते हैं।

यदि मैं गलत दिशा में जा रहा हूं तो कृपया मुझे सही दिशा में इंगित करें।

उत्तर

1

आखिरकार मैंने ArrayAdapter को उप-वर्गीकृत किया, इसे getFilter विधि ओवरराइड करके फ़िल्टर अक्षम कर दिए, और "टेक्स्ट चेंज" ईवेंट के दौरान मेरा HTTPRequest बनाया।

+0

हाय धन्यवाद एलोन मैं एक ही प्रोव है। यदि आप कुछ संबंधित कोड पोस्ट कर सकते हैं तो मैं आपके लिए आभारी रहूंगा। अग्रिम धन्यवाद –

+0

कृपया कुछ कोड जोड़ें या अपने समाधान का वर्णन करें। मैं इस पर पूरी तरह से अटक गया हूँ। –

+0

@ राजीववदा जल्द ही करेंगे –

14

शायद @Alon का मतलब के बजाय ArrayAdapter उपclassing था। getFilter() विधि में किसी को एक कस्टम फ़िल्टर वापस करना होगा, जो बिल्कुल फ़िल्टर नहीं करता है (इसके performFiltering() में)। शायद प्रदर्शन एक समस्या हो सकती है - क्योंकि वहां पैदा हुआ है। सबसे अच्छी बात टेक्स्ट एडिट से प्राप्त करना और अपने पूर्ण होने वाले पॉपअप को लागू करना होगा। लेकिन यह अब तक मेरे लिए बहुत परेशानी है। अंत में, मैंने कुछ ऐसा किया है और यह मेरे लिए काम करता है। किसी भी प्रतिक्रिया की सराहना की।

public class KArrayAdapter<T> 
extends ArrayAdapter<T> 
{ 
    private Filter filter = new KNoFilter(); 
    public List<T> items; 

    @Override 
    public Filter getFilter() { 
     return filter; 
    } 

    public KArrayAdapter(Context context, int textViewResourceId, 
      List<T> objects) { 
     super(context, textViewResourceId, objects); 
     Log.v("Krzys", "Adapter created " + filter); 
     items = objects; 
    } 

    private class KNoFilter extends Filter { 

     @Override 
     protected FilterResults performFiltering(CharSequence arg0) { 
      FilterResults result = new FilterResults(); 
       result.values = items; 
       result.count = items.size(); 
      return result; 
     } 

     @Override 
     protected void publishResults(CharSequence arg0, FilterResults arg1) { 
      notifyDataSetChanged(); 
     } 
    } 
} 

उम्मीद है कि यह मदद करता है।

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