2012-02-26 24 views
13

Me gustaría saber cómo, si se puede hacer, personalizar el color del menú desplegable del AutoCompleteTextView cuando se selecciona. Puedo personalizar todo lo demás, pero no el color seleccionado, es decir, se mantiene igual.Cómo personalizar el menú desplegable AutoCompleteTextView en Android

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

y la custom_spinner.xml estirable (en la carpeta estirable)

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

Esto funciona para un menú desplegable spinner , pero para un AutoCompleteTextView, cuando se selecciona, no cambia de color como menú desplegable de spinner

Cualquier ayuda o experiencia con esto sería apreciada.

Respuesta

11

Supongo que lo descubrí, o mejor dicho, lo que estaba haciendo mal. En un tema que poner esto:

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

y el estilo es (o parte pertinente):

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

y la custom_spinner está por encima.

Espero que esto pueda ayudar a alguien.

+0

Esta es la solución correcta. Para mayor aclaración, la segunda línea debe ir en un estilo definido así: . Espero que ayude :) – Sandra

+0

¿Qué diseño estás usando para el diseño? Estoy haciendo esto aAdapterAutoComplete = new ArrayAdapter (getActivity(). GetApplicationContext(), R.layout.auto_complete_text, suggest); \t \t \t \t \t autoComplete.setAdapter (aAdapterAutoComplete); – user1163234

5

en XML, para AutoCompleteTextView

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

Solo esto funcionó para mí. Agregar: @ drawable/custom_spinner a mi clase de estilo de autocompletar no funcionó ya que no todos los atributos funcionan en el archivo de estilo y en su lugar tienen que agregarse en la definición de autocompletar en el diseño xml. – Mike6679

Cuestiones relacionadas