出于某种原因,无论我做什么,我的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" />
答案 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"
/>
希望这可能对某人有帮助! 快乐编码:)