android AutoCompleteTextView 白色上的白色下拉列表
Posted
技术标签:
【中文标题】android AutoCompleteTextView 白色上的白色下拉列表【英文标题】:android AutoCompleteTextView white on white Dropdown list 【发布时间】:2011-08-08 06:51:45 【问题描述】:在这里打破我的头,我在网上搜索了很多,这似乎是之前android上的一个错误,但还没有找到解决方案。
我有一个 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 内置布局和我自己的几种组合。
即使将它指向一个 TextView 资源也用于 Spinner(按预期工作,白色背景上的黑色文本),但没有找到使其工作的方法,继续获得相同的结果
有什么帮助吗?
【问题讨论】:
我也有同样的问题——也是字段本身的文本,但我可以通过设置 android:textColor 来解决这个问题 也有同样的问题。看起来问题出在定义一行的 XML 文件中。我使用了内置的 android.R.layout.simple_list_item_1,但它是白底白字。当我更改为 android.R.layout.simple_dropdown_item_1line 时,我可以看到文本。 我自己刚刚创建了自己的 simple_dropdown_item_1line - 类似资源并在我的代码中使用了它。文字现在是黑色的:) 【参考方案1】:我遇到了这个问题。使用 android.R.layout.select_dialog_item 进行布局修复它。
【讨论】:
传奇。非常感谢您分享这些信息。你为我节省了很多时间! 我现在在 android.R.layout.select_dialog_item 和 this 上有这个错误,仅适用于我拥有的 2 个自动完成文本视图。我刚刚发现了差异化因素:this 与 context。 我现在可以看到文字,但颜色非常非常浅。【参考方案2】:所以这是我的问题的答案。
通常,this 和上下文引用并不完全相同。也许是因为上下文引用可能会在某些活动中传递,无论如何。
所以我更改了getApplicationContext();
在 onCreate() 期间检索“上下文”的那一行(包含在 onClickListener 中)
adapterListModele = new ArrayAdapter<String>(context, android.R.layout.select_dialog_item, listModeleNom);
进入我在课堂上使用 this 的以下行:
adapterListModele = new ArrayAdapter<String>(AncestorVehicule.this, android.R.layout.select_dialog_item, listModeleNom);
而且它有效!没有更多的白色字体。
我在 onclicklistener 回调之外对其进行了测试,发现了两件事:
使用相同的“上下文”变量确实使下拉菜单显示为白色 坚持“this”可以避免这个问题。希望它可以帮助别人。
【讨论】:
并在片段中获取活动。谢谢!【参考方案3】:很奇怪...我有 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_
android:layout_
android:padding="6dp"
android:textColor="#000000"
android:ellipsize="marquee" />
您是否应用了某种类型的主题?
另外...也许文本不是白色的,而是您不小心有空字符串?
【讨论】:
不,当我在模拟器上突出显示(转到橙色 bg / 白色文本)时,每个字符串都在那里并且匹配(这就是我所说的 AutoCompleteTextView 工作的原因),所以不是空字符串。另外,我在 AndroidManifest.xml 中看不到任何主题。我在发帖前看了那些。我也尝试应用我尝试在setcontext之前设置主题,在arrayAdapter中尝试了不同的资源参数并尝试了不同的主题,但没有任何帮助。
然后我将上下文从“this”更改为“getApplicationContext”,但问题仍然存在。
最后我把上下文参数改成了“getBaseContext()”,问题就解决了。
【讨论】:
这对我有用!尝试过编辑样式,之前没有用。【参考方案5】: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 );
【讨论】:
以上是关于android AutoCompleteTextView 白色上的白色下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )