AutoCompleteTextView背景/前景色

AHm*_*Net 11 java xml android

我正在使用AutoCompleteTextView.Its工作正常,但下拉文本始终是白色背景上的白色文本.这张照片解释了我的问题

图片解释我的问题

在此输入图像描述

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000"
    >
    <!-- <AutoCompleteTextView  -->
    <AutoCompleteTextView
        android:id="@+id/text"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:hint="Tapez votre 1texte"
        android:textColor="#000"        
        />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Java的:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,data);
adapter.setDropDownViewResource(R.drawable.ic_action_search);//dd
view.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 32

如果要更改下拉项的外观,请更改传递给ArrayAdapter的XML布局(在您的情况下,这是android.R.layout.simple_dropdown_item_1line).

让我们做一个名为新布局my_list_item.xmlres/layout:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/dropDownItemStyle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:textAppearance="?android:attr/textAppearanceMediumInverse"
    android:textColor="#00f" />
Run Code Online (Sandbox Code Playgroud)

此文本较小,为蓝色,居中.我不建议使用此布局,它更多的是证明您可以自定义它.

现在改用它:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_list_item, data);
view.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

在此处设置属性时(如文本颜色):

<AutoCompleteTextView
    android:id="@+id/text"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:hint="Tapez votre 1texte"
    android:textColor="#000"        
    />
Run Code Online (Sandbox Code Playgroud)

您只需更改下拉列表上方的框(您在与AutoCompleteTextView交互之前看到的框).希望有所帮助!


the*_*her 11

这个问题可能已经过时了,但我相信这对我来说非常重要.我遇到了与OP相同的问题,但这是因为我使用'getApplicationContext()'代替'this'


错误

ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (getApplicationContext(), android.R.layout.simple_list_item_1, PLACES);
Run Code Online (Sandbox Code Playgroud)


正确

ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (this, android.R.layout.simple_list_item_1, PLACES);
Run Code Online (Sandbox Code Playgroud)

  • 如果适配器初始化在另一个线程或runnable中,那么而不是使用`getApplicationContext()`而是使用`YourActivityName.this`.这将使文本颜色从白色恢复为默认黑色. (4认同)