我整整一天搜索了这个问题,没有解决方法工作,我想要一些新鲜的眼睛来看看这个。我正在使用Android 3.2和主题Holo.Light与ActionBar(重要)。
我的布局xml:
<AutoCompleteTextView
android:id="@+id/autocompleteSearchTxt"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.52"
android:textSize="@dimen/text_size_normal"
android:hint="@string/search"
android:textColor="@android:color/primary_text_light"
android:textCursorDrawable="@null" />
在Android清单文件中:android:theme="@style/Theme.Holo.Light.Workaround"
在themes.xml文件中:
<style name="Theme.Holo.Light.Workaround" parent="@android:style/Theme.Holo.Light">
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewLight</item>
<item name="android:dropDownItemStyle">@style/Widget.DropDownItemLight</item>
</style>
在styles.xml文件中:
<style name="AutoCompleteTextViewLight" parent="@android:style/Widget.AutoCompleteTextView">
<item name="android:textColor">@android:color/primary_text_light</item>
</style>
<style name="Widget.DropDownItemLight" parent="@android:style/Widget.DropDownItem">
<item name="android:textColor">@android:color/primary_text_light</item>
</style>
现在,我尝试使用自己的颜色,红色,蓝色......颜色可以突出。
结果是......没什么。它没有任何改变,当我在自动完成中写字符时,我可以看到它正在完成,但我没有看到下拉项目文本颜色。它是透明的,或白色的白色(在真实设备上)。
我无法理解我做错了什么。有人之前解决了这个问题吗?请任何线索都会很棒。 无论如何,谢谢你。
答案 0 :(得分:1)
可能有点晚了但是如果你还需要答案......
您是如何设置阵列适配器的?如果您正在使用:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,my_list_of_values);
然后,Android提供的默认布局将覆盖您在xml中执行的任何操作。
相反,为什么不尝试使用textview组件创建布局文件,然后在实例化ArrayAdapter
时使用它?
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.your_textview_layout,my_list_of_values);
答案 1 :(得分:0)
private ArrayAdapter<String> autoCompleteAdapter = new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1, yourList){
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
((TextView) v).setTextSize(14);
Typeface Type = getFont () ; // custom method to get a font from "assets" folder
((TextView) v).setTypeface(Type);
((TextView) v).setTextColor(YourColor);
((TextView) v) .setGravity(Gravity.LEFT|Gravity.CENTER_VERTICAL);
return v;
}
};
YourAutoCompleteView.setAdapter(autoCompleteAdapter);