nana4ever
nana4ever
采纳率95.8%
2012-12-03 05:25

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

已采纳

关于Droid X的手机,用户反应说,在下拉列表中字体颜色变成白色,所以字体看不见,除非用户突出显示这一项。其他的手机没有出现这个问题。我要把字体强制的变成黑色来看看能否解决问题。我该怎么做呢?
这是我目前填充下拉列表的方法。看似simple_spinner_item在Droid X's中出错了。

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);
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • csh_34 csh_34 9年前

    在Android SDK使用Spinner工程案例:
    首先,你要创建自定义的适配器,拦截下拉列表创建的视图:

    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代替。这就是为什么它会拦截下拉列表创建的视图,然后变成想要的颜色。
    屏幕截图:
    enter image description here

    点赞 4 评论 复制链接分享
  • yongyong_21 yongyong_21 9年前

    简单的一个方法:

    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) {
      }
    };
    
    点赞 评论 复制链接分享
  • fandyvon 寒江独 9年前

    自己写一个R.layout.simple_spinner_item:

    <?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" />
    

    注意id必须是android:id="@android:id/text1",在设置字体或背景的颜色。
    这样试一下。

    ArrayAdapter adapter =
      new ArrayAdapter(this,packagename.R.layout.simple_spinner_item, spin_arry);
    
    点赞 3 评论 复制链接分享