Android ICS中的微调器的文本颜色有问题(使用Holo.Light主题)。 问题是背景颜色为浅灰色,文字颜色为白色,无法看到文字。
查看stackoverflow,我发现在下拉微调器时如何更改文本颜色,而不是在微调器没有下拉时更改颜色 有人可以帮我解决吗?
我试图标记android:textColor并不起作用。 我使用的代码是http://developer.android.com/guide/topics/ui/controls/spinner.html
谢谢!
答案 0 :(得分:5)
当你为Spinner设置适配器时,我猜你正在传入TextView的ResourceID。因此,更改布局xml中TextView的字体颜色将解决此问题。
答案 1 :(得分:5)
要获取黑色文本(在Theme.Holo.Light中)而不是白色,如果您使用的是ArrayAdapter,请将上下文设为getActivity().getBaseContext()
,因为根据我的经验,getActivity().getApplicationContext()
会为您提供白色文字
所以这样:
final Spinner num = (Spinner) getActivity().findViewById(R.id.num_spinner);
String[] spinnerArray = {"1", "2", "3"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_spinner_item, spinnerArray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
num.setAdapter(adapter);
我永远想起这个,因为我正在使用应用程序上下文。 !@ $!#$
答案 2 :(得分:2)
试试这个。这将改变视图的颜色。如果有任何问题再次询问。
Spinner spinner = (Spinner)findViewById(R.id.my_spinner);
TextView tv = (TextView) spinner.getSelectedView();
tv.setTextColor(Color.BLACK);
答案 3 :(得分:2)
将一个微调器放在DialogFragment中时遇到了同样的问题。由于我无法使用“this”作为上下文,因此我使用了应用程序上下文。这导致微调器在灰色背景上显示白色文本:
ArrayAdapter<String> adapter = new ArrayAdapter(mApplication, android.R.layout.simple_spinner_item, spinnerOptions);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
导致白色文字是因为我的活动使用的是Theme_Holo_Light_Dialog样式,但是微调器没有意识到它。通过将上下文从 mApplication 更改为 getActvity(),微调器现在知道在膨胀视图时使用Theme_Holo_Light_Dialog:
ArrayAdapter<String> adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_spinner_item, spinnerOptions);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
现在我在灰色背景上有黑色文字。
答案 4 :(得分:1)
将getActivity()更改为“this”,不知道原因但工作正常..
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, spinnerOptions);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);