改变下拉列表中字体的颜色

方式1:

private OnItemSelectedListener OnCatSpinnerCL = new AdapterView.OnItemSelectedListener() {
  public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) {
    ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE);
    ((TextView) parent.getChildAt(0)).setTextSize(5);
  }

  public void onNothingSelected(AdapterView<?> parent) {
  }
};


方式2:将Item TextView  ID设置 android.R.id.text1

static class CustomArrayAdapter<T> extends ArrayAdapter<T>
{
    public CustomArrayAdapter(Context ctx, T [] objects)
    {
        super(ctx, android.R.layout.simple_spinner_item, objects);
    }

    //其它构造函数

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent)
    {
        View view = super.getView(position, convertView, parent);

        // simple_spinner_item 有 android.R.id.text1 TextView视图:         

        /* if(isDroidX) {*/
            TextView text = (TextView)view.findViewById(android.R.id.text1);
            text.setTextColor(Color.RED);//choose your color :)         
        /*}*/

        return view;

    }
}
然后在你的代码中创建适配器:

String [] spin_arry = getResources().getStringArray(R.array.Planets);        
 this.mAdapter = new CustomArrayAdapter<CharSequence>(this, spin_arry);
因为CustomArrayAdapter知道我使用android内置布局资源,也知道TextView视图中的文本会被使用idandroid.R.id.text1代替。这就是为什么它会拦截下拉列表创建的视图,然后变成想要的颜色。


你可能感兴趣的:(改变下拉列表中字体的颜色)