2013-03-26 9 views
5

के लिए एंड्रॉइड कस्टम लेआउट मुझे कुछ आसान याद आ रहा है, लेकिन मेरे पास ऑटोकंपलेटटेक्स्ट व्यू है जिसमें कुछ बहुत लंबी चीज़ें हैं। जब कोई क्लिक किया जाता है, तो यह टेक्स्ट को एडिटटेक्स्ट में सही तरीके से दिखाता है और इसे कई लाइनों पर फैलाता है।AutoCompleteTextView

हालांकि, मैं पॉपअप पर भी कई लाइनों में होना चाहता हूं ताकि उपयोगकर्ता देख सकें कि वे कौन सी आइटम चुन रहे हैं।

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:ellipsize="none" 
    android:maxLines="100" 
    android:scrollHorizontally="false" /> 

यहाँ सरणी और एडाप्टर के अपने initialisation है:

यहाँ मेरी कस्टम लेआउट है

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       R.layout.dropdown_item_wrap_line, 
       getResources().getStringArray(R.array.building_descriptions)); 

mBuildingDesc.setAdapter(adapter); 
+0

आप की जरूरत है एक तत्व के भीतर कई पंक्तियों? मेरा मतलब है ऑटोकंपलेटटेक्स्ट व्यू के भीतर एक ही दृश्य में दो पंक्तियां होनी चाहिए और आप कुछ अन्य जानकारी दिखाने के लिए दूसरी पंक्ति का उपयोग करेंगे? क्या मैं सही हूँ –

+0

क्षमा करें नहीं, मेरा मतलब सिर्फ एक दृश्य के लिए है जो काटने के बजाय चारों ओर लपेटता है, मेरी वस्तुएं काफी लंबी हो सकती हैं (उदाहरण के लिए "लॉन्च इप्सम डोलर सीट एटेट, एक्टिविटी एडिपिसिंग एलिट। एलीकैम अल्ट्रीजिस टेम्पस नेक, एनसी ईस्टेस टिंटिडंट एट।") –

उत्तर

9

मेरा अनुमान है कि आपके AutoCompleteTextViewsingleLine तक ही सीमित है, इसलिए एक कस्टम लेआउट का उपयोग कर डिफ़ॉल्ट TextView के साथ अच्छी तरह से काम करना चाहिए।

आप एक नया Layout बनाने के लिए और यह custom_item.xml नाम के लिए की आवश्यकता होगी, तो यह इस तरह करते हैं ...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <TextView 
     android:id="@+id/autoCompleteItem" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dp" 
     android:textSize="14sp"  
     /> 

</LinearLayout> 

फिर AutoCompleteTextView पर एडाप्टर का उपयोग करते समय

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_item, R.id.autoCompleteItem, StringArray); 
textView.setAdapter(adapter); 
+0

यह पूरी तरह से काम करता है! आपको बहुत - बहुत धन्यवाद! –

+0

यह काम करता है कि, यदि आप आइटम का टेक्स्ट प्राप्त करने जा रहे हैं तो आपको कोई समस्या हो सकती है। तो सबसे पहले आप अपना setOnItemClickListener सेट करते हैं, फिर परम व्यू व्यू, अब टेक्स्ट व्यू नहीं बल्कि एक लीनियरलाउट है। – cutiko

+0

मुझे ऐसा नहीं लगता, मैंने कस्टम सरणी एडाप्टर का उपयोग किया और यह एकल लाइनों के साथ काम करता है हालांकि मैंने कस्टम लेआउट के साथ जांच नहीं की थी। मैं इसे जांचने और अपडेट करने जा रहा हूं :) –

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