我正在使用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.xml中res/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)
| 归档时间: |
|
| 查看次数: |
16110 次 |
| 最近记录: |