Theme.Holo.Light问题中的自动完成下拉项目文本颜色

时间:2012-05-07 23:52:21

标签: android android-theme

我整整一天搜索了这个问题,没有解决方法工作,我想要一些新鲜的眼睛来看看这个。我正在使用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>

现在,我尝试使用自己的颜色,红色,蓝色......颜色可以突出。

结果是......没什么。它没有任何改变,当我在自动完成中写字符时,我可以看到它正在完成,但我没有看到下拉项目文本颜色。它是透明的,或白色的白色(在真实设备上)。

我无法理解我做错了什么。有人之前解决了这个问题吗?请任何线索都会很棒。 无论如何,谢谢你。

2 个答案:

答案 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);