1

我有一个正常的自动完成功能:

<AutoCompleteTextView 
android:id="@+id/autocomplete_names"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/namesauto_prompt"
android:imeOptions="actionDone"
android:completionThreshold="2"/>

...

AutoCompleteTextView nameinp = (AutoCompleteTextView) findViewById(R.id.autocomplete_names);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, names);
nameinp.setAdapter(adapter);

我不会费心显示名称列表,因为它在我的运行 ICS 的平板电脑上运行良好,无论是横向模式还是纵向模式。在我的手机(Gingerbread)上横向显示它确实可以 - 名称的显示方式与自动建议发短信的方式相同。但在纵向模式下,它只会在自动完成输入下方呈现一个空白列表视图。任何想法为什么?

更新

因此,在玩过它之后,我注意到我的列表就在那里,只是它是白色背景上的白色文本(有点难以阅读)。我可以设置我的

android:popupBackground

到我喜欢的任何颜色(深灰色目前是一个竞争者),但我看不到改变弹出窗口(或下拉菜单)文本颜色的方法,我也不太明白为什么它一开始是白色的地方...

4

1 回答 1

1

我不知道这个问题的问题,因为即使我遇到了这个问题AutoCompleteTextView。我找到了解决方法。您可以做的是在ArrayAdapterTextView颜色设置为black的自定义 xml 中设置。

自定义TextView文件my_custom_textview.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1"
style="?android:attr/dropDownItemStyle"
android:textAppearance="?android:attr/textAppearanceLargePopupMenu"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />

并将此 xml 设置在您的ArrayAdapter

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.my_custom_textview, names);
nameinp.setAdapter(adapter);

希望这可以帮助你..

于 2013-05-25T06:21:48.957 回答