2012-02-26 14 views
13

Vorrei sapere come, se possibile, personalizzare il colore del menu a discesa dal AutoCompleteTextView quando selezionato. Posso personalizzare tutto il resto, ma non il colore selezionato, vale a dire: rimane uguale.Come personalizzare il menu a discesa AutoCompleteTextView su Android

Nella Activity:

ArrayAdapter<String> adap = new ArrayAdapter<String>(this, R.layout.row, strings); 
autoNewBird = (AutoCompleteTextView)findViewById(R.id.autoCompleteBirdName); 
autoNewBird.setAdapter(adap); 

row.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/birdtext" 
android:padding="5dip" 
android:background="@drawable/custom_spinner" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
style="@style/spinner_item" 
android:gravity="center_vertical" 
android:layout_gravity="center_vertical" android:lines="1"/> 

e il custom_spinner.xml disegnabile (nella cartella drawable)

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_window_focused="false" android:state_enabled="true" 
android:drawable="@drawable/listback" /> 
<item android:state_window_focused="false" android:state_enabled="false" 
    android:drawable="@drawable/listback" /> 
<item android:state_pressed="true" android:drawable="@drawable/threebythree" /> 
<item android:state_enabled="true" android:state_focused="true" 
android:drawable="@drawable/threebythree" />    
<item android:state_enabled="true" android:drawable="@drawable/listback" /> 
<item android:state_focused="true" android:drawable="@drawable/listback" /> 
<item android:drawable="@drawable/listback" /> 
</selector> 

Questo funziona per un menu a discesa filatore , ma per un AutoCompleteTextView, quando selezionato, non cambia colore come menu a tendina.

Qualsiasi aiuto o esperienza con questo sarebbe apprezzato.

risposta

11

Credo di aver capito, o meglio, cosa stavo facendo male. in un tema ho messo questo:

<item name="android:autoCompleteTextViewStyle">@style/custom_autocomplete</item> 

e lo stile è (o di una parte rilevante):

<item name="android:dropDownSelector">@drawable/custom_spinner</item> 

e il custom_spinner è al di sopra.

Spero che questo possa aiutare qualcuno.

+0

Questa è la soluzione giusta. Per ulteriori chiarimenti, la seconda riga deve essere definita in questo modo: . Spero che questo aiuti :) – Sandra

+0

Quale layout stai usando per il layout? Sto facendo così aAdapterAutoComplete = new ArrayAdapter (getActivity(). GetApplicationContext(), R.layout.auto_complete_text, suggest); \t \t \t \t \t autoComplete.setAdapter (aAdapterAutoComplete); – user1163234

5

in XML, per AutoCompleteTextView

android:dropDownSelector="@drawable/some_drawable" 
+0

Solo questo ha funzionato per me. Aggiunta: @ drawable/custom_spinner alla mia classe di stile di completamento automatico non ha funzionato in quanto non tutti gli attributi funzionano nel file di stile e devono invece essere aggiunti nella definizione di autocompletamento nel layout xml. – Mike6679

Problemi correlati