2011-05-24 11 views
5

काम कर तो कहते हैं कि मैं AutoCompleteTextView निम्नलिखित एडाप्टर का उपयोग स्वत: पूर्ण की कार्यक्षमता रखने:AutoCompleteTextView के साथ एक कस्टम सूची अनुकूलक का उपयोग करते हुए और अब भी वही

public class RosterAdapter extends ArrayAdapter<Player> { 
... 

} 

एक वस्तु प्लेयर बुलाया उपयोग कर रहा है यही कारण है, जहां के रूप में डिफ़ॉल्ट AutoCompleteTextView स्ट्रिंग के साथ काम करता है।

जब मैं कस्टम का उपयोग करता हूं तो सूची ठीक दिखाई देती है, लेकिन जब मैं कुछ लिखना शुरू करता हूं तो केवल एक ही समस्या है, यह सही चीजें प्रदर्शित नहीं करती है।

उदाहरण के लिए - अगर मैं bo लिखना प्रारंभ करते हैं, मैं .. नाम Bob Henderson, Garry Bobrinski, आदि के साथ लोगों को उम्मीद होती है

लेकिन क्या आता है एक ही सूची है, जो मैं जो भी लिखते कोई फर्क नहीं लगता है - बस यादृच्छिक रूप से आता है।

क्या मैं इस के लिए काम करने के लिए एक कस्टम ऑब्जेक्ट का उपयोग नहीं कर सकता? क्या प्रविष्टियों से मेल खाने के लिए मुझे स्ट्रिंग का उपयोग करना होगा? या क्या मैं कुछ प्रविष्टियों के लिए एक विशिष्ट स्ट्रिंग को देखने के लिए कह सकता हूं?

* अद्यतन *

यहां कुछ और कोड है - यह कैसे मैं कस्टम एडाप्टर RosterAdapter सेट है। यह काम करता है, लेकिन इसका स्वत: पूर्ण पहलू ठीक से काम नहीं करता है। यह लगभग भ्रमित हो जाता है और टाइप नहीं किया गया है, टाइप की गई स्ट्रिंग से मेल खाने के लिए ऑब्जेक्ट में क्या देखना है।

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_players); 
      RosterAdapter adapter = new RosterAdapter(RosterActivity.this, R.layout.roster_row, players); 
      textView.setAdapter(adapter); 

यह एक सामान्य ArrayAdapter उपयोग कर रहा है, और यह प्रविष्टियों मिलान के लिए ठीक काम करता है:

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_players); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(RosterActivity.this, R.layout.players_autocomplete, players); 
      textView.setAdapter(adapter); 

उत्तर

6

यह किसी भी कोड के बिना निश्चित रूप से कह करने के लिए कठिन है, लेकिन मेरा मानना ​​है कि आप के लिए getFilter() को लागू नहीं किया जा सकता एडाप्टर को स्ट्रिंग के रूप में Player ऑब्जेक्ट्स का उपयोग करने दें।

एक उदाहरण (असंबंधित आवश्यकता, लेकिन एक ही फिल्टर आवश्यक) के लिए देखें: How do I Use AutoCompleteTextView and populate it with data from a web API?

वहाँ एक और उदाहरण यहाँ है: http://www.sacoskun.com/2008/08/autocompletetextview-with-simpleadapter.html

+0

धन्यवाद Aleadam - मैं एक काम के आसपास का उपयोग कर समाप्त हो गया है, लेकिन मैं कोशिश करता हूँ बाहर 'getFilter() ' – xil3

+0

कार्य-आसपास क्या था? मैं अभी इस समस्या के साथ अपने सिर खरोंच कर रहा हूँ। अजीब चीज यह है कि जब मैं टाइप करना शुरू करता हूं तो सूची में फनी परिणाम होते हैं, लेकिन यदि बैकस्पेस है, तो यह व्यवहार करना शुरू कर देता है (!) –

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