Android ICS(Holo.light)中微调器中的颜色文本

时间:2012-08-30 09:22:55

标签: android android-spinner

Android ICS中的微调器的文本颜色有问题(使用Holo.Light主题)。 问题是背景颜色为浅灰色,文字颜色为白色,无法看到文字。

查看stackoverflow,我发现在下拉微调器时如何更改文本颜色,而不是在微调器没有下拉时更改颜色 有人可以帮我解决吗?

我试图标记android:textColor并不起作用。 我使用的代码是http://developer.android.com/guide/topics/ui/controls/spinner.html

谢谢!

enter image description here

5 个答案:

答案 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);