我对 Android ICS 中微调器的文本颜色有疑问(使用 Holo.Light 主题)。问题是背景颜色为浅灰色,文字颜色为白色,看不到文字。
查看stackoverflow,我发现如何在下拉微调器时更改文本颜色,而不是当微调器不是下拉时的颜色有人可以帮我修复它吗?
我试图标记 android: textColor 并且不起作用。我使用的代码是http://developer.android.com/guide/topics/ui/controls/spinner.html
谢谢!
我对 Android ICS 中微调器的文本颜色有疑问(使用 Holo.Light 主题)。问题是背景颜色为浅灰色,文字颜色为白色,看不到文字。
查看stackoverflow,我发现如何在下拉微调器时更改文本颜色,而不是当微调器不是下拉时的颜色有人可以帮我修复它吗?
我试图标记 android: textColor 并且不起作用。我使用的代码是http://developer.android.com/guide/topics/ui/controls/spinner.html
谢谢!
当你为 Spinner 设置适配器时,我猜你是在传递一个 TextView 的 ResourceID。因此,在布局 xml 中更改该 TextView 的字体颜色将解决此问题。
要获得黑色文本(在 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);
花了我很长时间才弄清楚这一点,因为我使用的是应用程序上下文。!@$!#$
试试这个。这将改变您的视图的颜色。有问题再问。
Spinner spinner = (Spinner)findViewById(R.id.my_spinner);
TextView tv = (TextView) spinner.getSelectedView();
tv.setTextColor(Color.BLACK);
将微调器放入 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);
现在我在灰色背景上有黑色文本。
将 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);