これは、アプリケーションのテーマを設定したためです。カスタムアダプタクラスを実装し、このためにSpinnerAdapterを実装する必要があります。
これがこの例です
public class CusSpinnerAdapter extends ArrayAdapter<String>
implements SpinnerAdapter{
private LayoutInflater inflate;
private int resourceId;
private String[] options;
private int selIndex;
private Context context;
public CusSpinnerAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
this.context = context;
this.inflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.resourceId = textViewResourceId;
this.options = objects;
}
public void setSelectedIndex(int selIndex){
this.selIndex = selIndex;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView = inflate.inflate(resourceId, null);
Holder holder = new Holder();
holder.textView = (TextView)convertView.findViewById(R.id.spinner_item);
convertView.setTag(holder);
}
Holder holder = (Holder)convertView.getTag();
holder.textView.setText(options[position]);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView = inflate.inflate(resourceId, null);
Holder holder = new Holder();
holder.textView = (TextView)convertView.findViewById(R.id.spinner_item);
convertView.setTag(holder);
}
Holder holder = (Holder)convertView.getTag();
holder.textView.setText(options[position]);
if(position==selIndex){
holder.textView.setBackgroundColor(context.getResources().getColor(R.color.spinner_item_selected));
}else
holder.textView.setBackgroundColor(context.getResources().getColor(R.color.spinner_item_default));
return convertView;
}
private class Holder{
TextView textView;
}
}
このselIndexではインデックスアイテムが選択されました。どのアイテムが選択されたかを識別し、アイテムに選択されたドローアブルを設定するときに、これを実装する必要があります。スピナーコントロールで選択されたアイテムに実装し、そこからこのアダプタークラスのインデックス値を設定するだけです。
これもまた別の方法です
https://stackoverflow.com/a/4662939/760489