2012-07-30 18 views
5

मैं अपने एप में कस्टम एडाप्टर के साथ AutoCompleteTextView का उपयोग कर रहा हूं और यह पोर्ट्रेट मोड में सही काम करता है। क्षैतिज मोड में हालांकि सॉफ़्टवेयर कीबोर्ड अधिकांश स्क्रीन लेता है और टेक्स्ट व्यू एडाप्टर द्वारा प्रदान किए गए दृश्यों के बजाय ओवरले बटन का उपयोग करता है।ऑटोकंपलेटटेक्स्ट व्यू लैंडस्केप मोड में संकेत

मुझे दृश्यों के पीछे यह कैसे काम करता है इसके बारे में एक स्पष्ट दस्तावेज़ीकरण नहीं मिला। ऐसा लगता है कि लैंडस्केप मोड AutoCompleteTextView एडाप्टर के getView() विधि को बाईपास करता है, getItem() का उपयोग करके कुछ गंदे काम करता है और कच्चे तारों का उपयोग करके आइटम स्वयं प्रस्तुत करता है।

बातें बदतर ऐसा लगता है कि AutoCompleteTextView में accualy स्वतः पूर्ण संकेत की दो सूचियां प्रस्तुत कर रहा है बनाने के लिए: एक ही समय में मानक लटकती और ओवरले बटन (यह अच्छी तरह से दिखाई दे रहा है अगर हम flagNoExtractUi को imeOptions सेट AutoCompleteTextView परिदृश्य में विस्तार को रोकने के लिए) ।

मैं दोनों स्थितियों में अपने स्वयं के विचारों को आपूर्ति करना चाहता हूं - लेकिन मैं इसे अभी तक ड्रॉप डाउन मेनू के लिए करने में कामयाब रहा। ओवरलेड सूची के लिए कस्टम दृश्य प्रदान करने के लिए कोई भी परिवर्तन?

मुझे खेद है, लेकिन मैं अभी तक निम्न रैंकिंग के कारण छवियां पोस्ट नहीं कर सकता। अगर उन्हें किसी की जरूरत है तो मैं उन्हें भेज सकता हूं।

+0

क्या आप इस http://stackoverflow.com/questions/29046302/how-to-implement-autocompletetextview-with-listview –

उत्तर

0

मुझे अभी इस समस्या का सामना करना पड़ा। जैसा कि आपने कहा था, परिदृश्य में टेक्स्टव्यू getItem() के परिणाम पर अपने स्वत: पूर्ण संकेतों का आधार बना रहा है। मुझे वास्तव में इस परिदृश्य में पाठ के अलावा कुछ भी प्रदान करने का कोई तरीका नहीं दिख रहा है, लेकिन परिदृश्य में दिखाने के लिए सही पाठ प्राप्त करने का एक आसान समाधान है जिस पर आप संकेत दे रहे हैं उस वस्तु के लिए toString() ओवरराइड करना है।

उदाहरण के लिए, मेरी स्थिति में मैं अपने स्वत: पूर्ण संकेत पॉप्युलेट करने के लिए संपर्क वस्तुओं की एक सूची का उपयोग कर रहा है, इसलिए मैं अपने संपर्क कक्षा में toString() overrode यह "FirstName LastName" के बजाय की तरह "संपर्क एक कच्चे वस्तु प्रतिनिधित्व दिखाने के लिए प्राप्त करने के लिए @ a2a6d4d3a5। "

+0

के साथ मेरी सहायता कर सकते हैं एक [बेहतर समाधान] है (http://stackoverflow.com/a/12 9 34794/2469 9 01) टूस्ट्रिंग() कार्यों को बदलने के तरीके से, जो इस परिदृश्य के मुकाबले अलग-अलग कार्यान्वित किया जा सकता है। – Skytile

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