除了一个屏幕,Spinner
需要有黑色'文本。一个屏幕需要Spinner
才能拥有白色'颜色(所选项目和微调器项目的显示文本)。
以下是更清晰的图像。
我能够获得白色'微调器项目的颜色,但不是所选的显示文本。同样,我不想全局改变样式 - 只需这一个屏幕。这可能吗?
答案 0 :(得分:5)
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
int index = adapterView.getSelectedItemPosition();
((TextView) spinner.getSelectedView()).setTextColor(getResources().getColor(R.color.white));
}
答案 1 :(得分:0)
创建Spinner时,必须为其提供适配器。如果您使用Android开发人员的标准实现:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
你可以做的就是创建你自己的布局,用于表示提供的选定项目文本并将其放在适配器中,你可以在那里提供'textColor'属性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:textColor="@color/primary_blue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textAlignment="inherit"/>
如果您使用ArrayAdapter.createFromResource()
,请不要忘记将TextView与android:id="@android:id/text1"
一起使用,以便此适配器能够将数据绑定到您的布局。