如何在Android上自定义AutoCompleteTextView下拉列表

时间:2012-02-26 16:42:22

标签: android drop-down-menu autocompletetextview

我想知道如果可以的话,在选择时自定义AutoCompleteTextView下拉列表的颜色。我可以自定义其他所有内容,但不能选择所选颜色,即 - 它保持不变。

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

和drawable custom_spinner.xml(在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>

这适用于微调器下拉列表,但对于AutoCompleteTextView,选中时,它不会像微调器下拉列表那样改变颜色。

任何帮助或经验都将受到赞赏。

2 个答案:

答案 0 :(得分:11)

我想我弄清楚了,或者说我做错了什么。 在一个主题中我说:

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

,风格是(或相关部分):

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

,custom_spinner在上面。

希望这可以帮助某人。

答案 1 :(得分:5)

在xml中,对于AutoCompleteTextView

android:dropDownSelector="@drawable/some_drawable"