スピナー用のカスタム ArrayAdapter があり、ドロップダウンの項目のテキストの色を変更する必要があります。コードは問題ないように見えますが、どういうわけか機能しません。
public class CustomRadioArrayAdapter<T> extends ArrayAdapter<T> {
public CustomRadioArrayAdapter(Context context, T[] data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
public CustomRadioArrayAdapter(Context context, List<T> data) {
super(context, android.R.layout.simple_spinner_item, data);
this.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
if (view != null && view instanceof CheckedTextView) {
((CheckedTextView) view).setCheckMarkDrawable(R.drawable.radio);
((CheckedTextView) view).setTextColor(Color.rgb(255, 0, 255));
}
view.setBackgroundResource(R.drawable.spinback);
return view;
}
}
UPD このコードは Lenovo の Android 4.0.4 では機能しないことがわかりましたが、Android 4.0.3 HTC ではすべてが正しく表示されます。