How to customize AutoCompleteTextView dropdown on Android

kevinksmith picture kevinksmith · Feb 26, 2012 · Viewed 16.9k times · Source

I would like to know how, if it can be done, to customize the color of the dropdown from the AutoCompleteTextView when selected. I can customize everything else, but not the selected color ie - it stays the same.

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

and the drawable custom_spinner.xml (in drawable folder)

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

This works for a spinner dropdown, but for an AutoCompleteTextView, when selected, it does not change color like the spinner dropdown.

Any help, or experience with this would be appreciated.

Answer

kevinksmith picture kevinksmith · Mar 2, 2012

I guess I figured it out, or rather what I was doing wrong. In a theme I put this:

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

and the style is(or relevant part):

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

and the custom_spinner is above.

Hope this can help someone.