Android 如何更改appcompat自动完成弹出文本的颜色?

Android 如何更改appcompat自动完成弹出文本的颜色?,android,android-theme,android-styles,Android,Android Theme,Android Styles,我知道有很多问题和答案,但没有一个适合我 我的风格和主题: <style name="AnnaTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Colors, and stuff --> <item name="android:dropDownItemStyle">@style/DropDownItemStyle</item> <

我知道有很多问题和答案,但没有一个适合我

我的风格和主题:

<style name="AnnaTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--
    Colors,
    and stuff
    -->
    <item name="android:dropDownItemStyle">@style/DropDownItemStyle</item>
    <item name="android:spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
    <item name="spinnerDropDownItemStyle">@style/DropDownItemStyle</item>
</style>

<style name="DropDownItemStyle" parent="Widget.AppCompat.Light.DropDownItem.Spinner">
    <item name="android:textColor">@android:color/black</item>
</style>

@样式/下拉项样式
@样式/下拉项样式
@样式/下拉项样式
@android:彩色/黑色
但结果仍然是:

布局如下:

<android.support.design.widget.TextInputLayout
    android:id="@+id/til_email"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

        <AutoCompleteTextView
            android:id="@+id/et_email"
            android:layout_width="@dimen/join_field_width"
            android:layout_height="wrap_content"
            android:hint="@string/email"
            android:inputType="textEmailAddress"/>

</android.support.design.widget.TextInputLayout>

和适配器:

emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this)));
emailView.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,Utils.getUniqueEmailsFromAccount(这个));

你们能帮我把文字变成黑色吗?

试试这个建议吧

首先尝试将
适配器更改为此(如果不起作用,请尝试使用第二个选项:


emailView.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple\u下拉列表\u item\u 1line,Utils.getUniqueEmailsFromAccount(这个));


1#创建
样式
,如下所示:

<style name="CustomAuto">
    <item name="android:paddingTop">3dp</item>
    <item name="android:paddingRight">5dp</item>
    <item name="android:paddingBottom">3dp</item>
    <item name="android:paddingLeft">5dp</item>
    <item name="android:textColor">#000</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/any_id"
style="@style/CustomAuto"
android:singleLine="true" />
3#将
适配器更改为:

emailView.setAdapter(new ArrayAdapter<>(this,R.layout.text_custom_view, Utils.getUniqueEmailsFromAccount(this)));
emailView.setAdapter(新的ArrayAdapter(this,R.layout.text_custom_视图,Utils.getUniqueEmailsFromAccount(this));

一个简单的解决方案是创建自己的列表项。因此,创建一个布局XML文件并在其中编写以下代码

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:textColor="@android:color/black"
    android:padding="5dp"
    android:layout_width="match_parent"
    android:singleLine="true"
    android:layout_height="wrap_content"/>

并将其传递给适配器的构造函数

emailView.setAdapter(new ArrayAdapter<>(this, R.layout.that_layout, Utils.getUniqueEmailsFromAccount(this)));
emailView.setAdapter(新的ArrayAdapter(this,R.layout.that_layout,Utils.getUniqueEmailsFromAccount(this));

您还可以覆盖适配器:

emailView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Utils.getUniqueEmailsFromAccount(this))){  
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = super.getView(position, convertView, parent);

            TextView text = (TextView)view.findViewById(android.R.id.text1);

            text.setTextColor(Color.BLACK);

            return view;

        }};
emailView.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,Utils.getUniqueEmailsFromAccount(这个)){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=super.getView(位置、转换视图、父级);
TextView text=(TextView)view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
返回视图;
}};

Try
android:popubackground=“#000000”
在你的AutoCompleteTextView上顺便问一下,你是如何声明你的AutoCompleteTextView的?你能把java放在哪里?我不想要黑色背景,而是黑色文本。我还为适配器添加了代码。它会更改文本字段的textcolor,而不是弹出窗口的textcolor。首先,我想要弹出窗口的文本颜色,而不是背景。将此更改为getBaseContext()什么也没做。在你搜索时更改文本颜色会更改EditText的文本颜色,而不是弹出窗口。android.R.layout.simple\u dropdown\u item\u 1line成功了!谢谢!有了支持库,R.layout.support\u simple\u spinner\u dropdown\u item甚至更好。