2

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

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

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

谢谢!

在此处输入图像描述

4

5 回答 5

5

当你为 Spinner 设置适配器时,我猜你是在传递一个 TextView 的 ResourceID。因此,在布局 xml 中更改该 TextView 的字体颜色将解决此问题。

于 2012-08-30T09:26:34.390 回答
5

要获得黑色文本(在 Theme.Holo.Light 中)而不是白色,如果您使用的是 ArrayAdapter,请使用 Context,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);

花了我很长时间才弄清楚这一点,因为我使用的是应用程序上下文。!@$!#$

于 2013-12-30T04:54:05.977 回答
2

试试这个。这将改变您的视图的颜色。有问题再问。

                    Spinner spinner = (Spinner)findViewById(R.id.my_spinner);
        TextView tv = (TextView) spinner.getSelectedView();
        tv.setTextColor(Color.BLACK);
于 2012-08-30T09:58:16.870 回答
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);

现在我在灰色背景上有黑色文本。

于 2013-04-05T00:20:05.103 回答
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);
于 2014-11-20T08:33:58.210 回答