2013-03-26 28 views
5

Potrei mancare qualcosa di semplice qui, ma ho un AutoCompleteTextView che contiene alcuni oggetti molto lunghi. Quando si fa clic su uno, viene mostrato correttamente il testo in EditText e si estende su più righe.Layout personalizzato Android per AutoCompleteTextView

Tuttavia, desidero che sia presente in più righe sul popup in modo che gli utenti possano vedere quale elemento stanno selezionando.

Ecco il mio layout personalizzato:

<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" /> 

Ecco il mio inizializzazione della matrice e l'adattatore:

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

mBuildingDesc.setAdapter(adapter); 
+0

Avete bisogno più righe all'interno di un elemento? Voglio dire che una singola vista in AutoCompleteTextView dovrebbe contenere due righe e userai la seconda riga per mostrare altre informazioni? Io ho ragione? –

+0

Scusate no, intendo solo per una vista che si avvolge piuttosto che tagliando, i miei oggetti possono essere piuttosto lunghi (ad esempio "Lorem ipsum dolor sit amet, consectetur adipiscing elit." Aliquam ultricies tempus neque, nec egestas erat tincidunt et. ") –

risposta

9

La mia ipotesi è che il vostro AutoCompleteTextView è limitata a singleLine, in modo da utilizzare un layout personalizzato con l'impostazione predefinita TextView dovrebbe funzionare correttamente.

Sarà necessario fare un nuovo Layout e il nome custom_item.xml, quindi fare in questo modo ...

<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> 

Poi mentre si utilizza l'adattatore sul AutoCompleteTextView fare

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

Funziona perfettamente! Grazie mille! –

+0

Funziona come mai, se hai intenzione di ottenere il testo dell'articolo potresti avere un problema. Quindi, per prima cosa imposta setOnItemClickListener, quindi la vista Param View, non è più una TextView ma una LinearLayout. – cutiko

+0

non penso, ho usato arrayAdapter personalizzato e funziona con linee singole anche se non ho controllato con il layout personalizzato. vado a controllare e aggiornare qui :) –

Problemi correlati