我的AutoCompleteTextView的textColor始终为白色

时间:2015-12-16 02:02:21

标签: java android xml autocompletetextview

出于某种原因,无论我做什么,我的AutoCompleteTextView中出现的文本总是白色的。我在XML中明确地将textColor设置为黑色。我想知道android.R.layout.simple_list_item_1默认是否为白色?

以下是我设置ArrayAdapter的地方:

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, strings);
                    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.searchUserTextField);
                    textView.setAdapter(adapter);

这是我的XML:

<AutoCompleteTextView
            android:layout_width="match_parent"
            android:layout_height="65dp"
            android:background="@drawable/edittext_border"
            android:layout_gravity="top"
            android:textColor="#000000"
            android:hint="@string/search_user"
            android:id="@+id/searchUserTextField"
            android:ems="150"
            android:paddingLeft="25dp"
            android:paddingTop="10dp"
            android:paddingRight="10dp"
            android:paddingBottom="10dp"
            android:maxLines ="4"
            android:maxLength ="150"
            android:scrollHorizontally="false"
            android:typeface="sans"
            android:textSize="14sp"
            android:fontFamily="sans-serif-light"
            android:capitalize="none"
            android:inputType="textEmailAddress"
            android:gravity="center_vertical"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_toLeftOf="@+id/submitSearch"
            android:layout_toStartOf="@+id/submitSearch" />

3 个答案:

答案 0 :(得分:3)

看起来像是AOSP中记录的错误。您可以在此帖AutoCompleteTextview Color set white by default

中找到更多信息以及解决方法

答案 1 :(得分:1)

只需添加一下,以防有人仍在寻找可以解决的答案,因为它不是bug,但是您可以为自动完成建议提供自定义布局,如下所示:

更改此行代码

final ArrayAdapter<String> adapter = new ArrayAdapter<String (getApplicationContext(), android.R.layout.simple_list_item_1, strings);

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.custom_autocomplete, strings);

将布局资源文件命名为 custom_autocomplete.xml ,并提供所需的设置。工作模板

<?xml version="1.0" encoding="utf-8"?>
    <TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/colorPrimary"
        android:background="@color/white"
        android:paddingHorizontal="10dp"
        android:paddingVertical="15dp" />

答案 2 :(得分:0)

将下拉菜单视图的默认布局更改为仅包含TextView的自定义布局:

示例(在Kotlin中)-

在行中替换android.R.layout.select_dialog_item:

val adapter: ArrayAdapter<String> = ArrayAdapter<String>(this, android.R.layout.select_dialog_item,gender)

收件人:

val adapter: ArrayAdapter<String> = ArrayAdapter<String>(this, R.layout.item_drop_down,gender)

性别:

private var gender :Array<String> = arrayOf("Male", "Female", "Others")

这是自定义布局文件: item_drop_down

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/appBlue"
android:gravity="center_vertical"
android:paddingStart="14dip"
android:paddingEnd="15dip"
android:ellipsize="marquee"
android:textSize="@dimen/sp_15"
/>

希望这可能对某人有帮助! 快乐编码:)