Android 如何更改微调器文本颜色

Android 如何更改微调器文本颜色,android,text,colors,spinner,textcolor,Android,Text,Colors,Spinner,Textcolor,我看到了很多关于如何更改微调器文本颜色的主题,但我不知道如何使用 spinner_item.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"

我看到了很多关于如何更改微调器文本颜色的主题,但我不知道如何使用

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="top"
    android:singleLine="true"
    android:textColor="@color/iphone_text" />
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="top"
    android:singleLine="true"
    android:textColor="#00f0ff" />

在java代码中我真正应该做什么:? 任何回复都将被指定
请尽可能详细地回答清楚

这里您必须在数组适配器中设置spinner_item.xml。将这段代码添加到.java文件中

Spinner yourSpinner;
ArrayAdapter<String> yourAdapter;
yourSpinner= (Spinner) findViewById(R.id.yourSpinnerID);
yourSpinner.setAdapter(yourAdapter);
yourAdapter= new ArrayAdapter<String>(this, R.layout.spinner_item, value);
//here value is your items in spinner..
微调器您的微调器;
阵列适配器;
yourSpinner=(Spinner)findViewById(R.id.yourSpinnerID);
yourSpinner.setAdapter(yourAdapter);
yourAdapter=new ArrayAdapter(此,R.layout.spinner_项,值);
//这里的值是您在微调器中的项目。。
微调器spnCategray=(微调器)findViewById(R.id.my\u微调器);
..
ArrayAdapter ADPTSPNCEGORY=新的ArrayAdapterthis,R.layout.custom_spinner_item,alCategoryName);
adptspncegory.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
设置适配器(ADPTSPNCegory);
setOnItemSelectedListener(新的OnItemSelectedListener())
{
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3)
{
}
未选择公共无效(AdapterView arg0)
{
}
});

对我来说,完整的答案应该是:

public class ee extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ww);
        addListenerOnSpinnerItemSelection();

    }

    public void addListenerOnSpinnerItemSelection() {
        ArrayList<String> array = new ArrayList<String>();
        array.add("item0");
        Spinner spinner1;
        ArrayAdapter<String> mAdapter;
        spinner1 = (Spinner) findViewById(R.id.spinner2);
        mAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, array);
        spinner1.setAdapter(mAdapter);
    }

}
公共类ee扩展活动{
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ww);
addListenerOnSpinnerItemSelection();
}
public void addListenerOnSpinnerItemSelection(){
ArrayList数组=新的ArrayList();
数组。添加(“item0”);
喷丝器喷丝器1;
ArrayAdapter mAdapter;
喷丝头1=(喷丝头)findViewById(R.id.spinner2);
mAdapter=newarrayadapter(这个,R.layout.spinner\u项,数组);
喷丝头1.设置适配器(mAdapter);
}
}
而且 res/layout添加新的xml文件:

(在spinner_item.xml中)


微调器微调器=(微调器)findViewById(R.id.Spinner);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0,视图,
整数arg2,长arg3){
((TextView)arg0.getChildAt(0)).setTextColor(Color.RED);
}
@凌驾
未选择公共无效(AdapterView arg0){
}
}
ArrayAdapter=新的ArrayAdapter(此,
R.布局列表(行、列表);
旋转器。设置适配器(适配器);
list_row.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:textColor="#000000"
android:textSize="20sp" />

我是这样做的:我使用了
getDropDownView()
getView()
方法

对打开的
微调器使用
getDropDownView()

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
     View view = convertView;
     if (view == null) {
        LayoutInflater vi = (LayoutInflater) activity
                         .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = vi.inflate(R.layout.context_row_icon, null);
     }
     TextView mTitle = (TextView) view.findViewById(R.id.context_label);
     ImageView flag = (ImageView) view.findViewById(R.id.context_icon);               

     mTitle.setText(values[position].getLabel(activity));

     if (!((LabelItem) getItem(position)).isEnabled()) {
          mTitle.setTextColor(activity.getResources().getColor(
               R.color.context_item_disabled));
     } else {
          mTitle.setTextColor(activity.getResources().getColor(
              R.color.context_item));
     }
     return view;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
     View view = convertView;
     if (view == null) {
         LayoutInflater vi = (LayoutInflater) activity
             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         view = vi.inflate(R.layout.context_row_icon, null);
     }
     TextView mTitle = (TextView) view.findViewById(R.id.context_label);
     ImageView flag = (ImageView) view.findViewById(R.id.context_icon);

     mTitle.setText(values[position].getLabel(activity));

     mTitle.setTextColor(activity.getResources().getColor(
           R.color.context_item_disabled));

     return view;
}
并对关闭的
微调器使用
getView()

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
     View view = convertView;
     if (view == null) {
        LayoutInflater vi = (LayoutInflater) activity
                         .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = vi.inflate(R.layout.context_row_icon, null);
     }
     TextView mTitle = (TextView) view.findViewById(R.id.context_label);
     ImageView flag = (ImageView) view.findViewById(R.id.context_icon);               

     mTitle.setText(values[position].getLabel(activity));

     if (!((LabelItem) getItem(position)).isEnabled()) {
          mTitle.setTextColor(activity.getResources().getColor(
               R.color.context_item_disabled));
     } else {
          mTitle.setTextColor(activity.getResources().getColor(
              R.color.context_item));
     }
     return view;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
     View view = convertView;
     if (view == null) {
         LayoutInflater vi = (LayoutInflater) activity
             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         view = vi.inflate(R.layout.context_row_icon, null);
     }
     TextView mTitle = (TextView) view.findViewById(R.id.context_label);
     ImageView flag = (ImageView) view.findViewById(R.id.context_icon);

     mTitle.setText(values[position].getLabel(activity));

     mTitle.setTextColor(activity.getResources().getColor(
           R.color.context_item_disabled));

     return view;
}

这是我为spinner的文本执行的最简单的方法。我知道它很晚了,但它会帮助一些人

select_gender.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  // give the color which ever you want to give to spinner item in this line of code               
            ((TextView)parent.getChildAt(position)).setTextColor(Color.parseColor("#646b99"));
            spinner_selected_gender=gender_list.get(position);
            Toast.makeText(getApplicationContext(),"You selected"+spinner_selected_gender,Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
select_gender.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//在这行代码中,为微调器项指定您想要的颜色
((TextView)parent.getChildAt(position)).setTextColor(Color.parseColor(“#646b99”);
微调器\所选\性别=性别\列表。获取(位置);
Toast.makeText(getApplicationContext(),“您选择的”+微调器(您选择的)性别,Toast.LENGTH(您选择的)SHORT.show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

从API级别16及以上,您可以使用以下代码更改spinner中的下拉图标。只需转到setonItemSelectedListener中的onItemSelected,然后更改所选textview的可绘制性,如下所示

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      // give the color which ever you want to give to spinner item in this line of code

    //API Level 16 and above only.
            ((TextView)parent.getChildAt(position)).setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,ContextCompat.getDrawable(Activity.this,R.drawable.icon),null);

//Basically itis changing the drawable of textview, we have change the textview left drawable.
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
           }
        });
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//在这行代码中,为微调器项指定您想要的颜色
//API等级16及以上。
((TextView)parent.getChildAt(position)).setCompoundDrawablesRelativeWithIntrinsicBounds(null,null,ContextCompat.getDrawable(Activity.this,R.drawable.icon),null);
//基本上是改变了textview的可绘制性,我们已经改变了textview的左可绘制性。
}
@凌驾
未选择公共无效(AdapterView父级){
}
});

希望它能帮助一些人。

在noobProgrammer answer的基础上,由于singleLine已被弃用,为任何正在寻找答案的人提供了spinner_item.xml的快速更新版本

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1">
</TextView>


spinner1=new ArrayAdapter(this,R.layout.spinner_item,array);“中的spinner1应该已经制作好了。什么是textview?我是如何使用它的?它会给我null异议错误如果您已经为spinner实现了自定义适配器,则textview是该自定义布局的项