如何更改Spinner字体颜色?

Jon*_*onF 22 android spinner

我遇到了Droid X手机的问题,用户说旋转器中的字体颜色变成白色,除非用户突出显示这些项目,否则它将不可见.没有其他手机似乎有这个问题.我打算尝试将字体强制为黑色以查看是否有帮助.我怎样才能做到这一点?

这就是我目前如何填充微调器.似乎simple_spinner_item在Droid X上打破了.

String spin_arry[] = new String[str_vec.size()];
str_vec.copyInto(spin_arry);
ArrayAdapter adapter =
    new ArrayAdapter(this,android.R.layout.simple_spinner_item, spin_arry);
Run Code Online (Sandbox Code Playgroud)

ina*_*ruk 46

我将使用SpinnerAndroid SDK中的项目示例来获取下一个代码示例.


代码:

首先,您需要创建自定义适配器,它将截取下拉列表中的视图创建:

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

    //other constructors

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

        //we know that simple_spinner_item has 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;

    }
}
Run Code Online (Sandbox Code Playgroud)

然后在代码中创建适配器,如下所示:

 String [] spin_arry = getResources().getStringArray(R.array.Planets);        
 this.mAdapter = new CustomArrayAdapter<CharSequence>(this, spin_arry);
Run Code Online (Sandbox Code Playgroud)

说明:

因为CustomArrayAdapter知道我们使用android的内置布局资源,所以它也知道文本将被放入TextViewid中android.R.id.text1.这就是为什么它可以截取下拉列表中的视图创建并将文本颜色更改为所需的任何颜色.


截图:

在此输入图像描述


Ash*_*raf 7

简单而清脆......

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) {
  }
};
Run Code Online (Sandbox Code Playgroud)


小智 7

写一个 R.layout.simplespinneritem?

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

ID为android:id="@android:id/text1",设置字体和背景的颜色.

ArrayAdapter adapter =
  new ArrayAdapter(this,packagename.R.layout.simple_spinner_item, spin_arry);
Run Code Online (Sandbox Code Playgroud)