android AutoCompleteTextView白色白色下拉列表

时间:2011-04-19 00:02:28

标签: android drop-down-menu android-widget widget autocompletetextview

在这里打破了我的脑袋,我在网上搜索了很多,看来这是Android上的一个bug,但还没有找到解决方案。

我有一个AutoCompleteTextView:

autodesignations = (AutoCompleteTextView) findViewById(R.id.main_autocomp);

adapterShapesAuto = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, shapes);

autodesignations.setAdapter(adapterShapes);

小部件可以工作,但下拉文本在白色背景上始终是白色文本。

我已经尝试将适配器的资源设置为android内置布局的几种组合&amp;也是我自己的。

甚至将它指向一个TextView资源,它也用于Spinner(按预期工作,白色背景上的黑色文本),但发现无法使其工作,不断获得相同的结果

任何帮助?

5 个答案:

答案 0 :(得分:21)

我有这个问题。修复它使用android.R.layout.select_dialog_item进行布局。

答案 1 :(得分:3)

所以这是我的问题的答案。

通常,和上下文引用不完全相同。也许是因为上下文引用可能会传递给某些活动,无论如何。

所以我更改了那行(包含在onClickListener中),其中&#39; context&#39;在onCreate()期间由getApplicationContext();

检索
adapterListModele = new ArrayAdapter<String>(context, android.R.layout.select_dialog_item, listModeleNom);

进入以下行,我在班上使用了这个:

adapterListModele = new ArrayAdapter<String>(AncestorVehicule.this, android.R.layout.select_dialog_item, listModeleNom);

它有效!没有更多的白色字体。

我在onclicklistener回调之外测试了它并发现了两件事:

  • 使用相同的&#39; context&#39;变量确实使下拉显示为白色
  • 坚持这个&#39;避免这个问题。

希望它可以帮助别人。

答案 2 :(得分:1)

非常奇怪......我有AutoCompleteTextView的工作正常。我发现下拉条目的大小太大,所以我最终设置了自己的资源布局文件。愚蠢的问题......你在xml中设置了textColor吗?

这是我用的......

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    android:singleLine="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="6dp"
    android:textColor="#000000"
    android:ellipsize="marquee" />

您是否应用了某种类型的主题?

另外......也许文字不是白色的,而是你不小心有空字符串?

答案 3 :(得分:1)

我尝试在setcontext之前设置主题,在arrayAdapter中尝试了不同的资源参数并尝试了不同的主题,但没有任何帮助。

然后我将上下文从'this'更改为'getApplicationContext',但问题仍然存在。

最后我将context参数更改为“getBaseContext()”,问题解决了。

答案 4 :(得分:0)

Here is your answer

 SimpleCursorAdapter ad = new SimpleCursorAdapter(this, android.R.layout.simple_dropdown_item_1line, null,
                new String[] { "item_Name" }, new int[] {android.R.id.text1} , 2 );