How to change spinner text color

后端 未结 8 1967
抹茶落季
抹茶落季 2020-12-10 02:50

I saw many topics about how to change spinner\'s text color,but i couldnt understand how to use

spinner_item.xml



        
相关标签:
8条回答
  • 2020-12-10 03:21
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    
            @Override
            public void onItemSelected(AdapterView<?> arg0, View view,
                    int arg2, long arg3) {
    
                ((TextView) arg0.getChildAt(0)).setTextColor(Color.RED);
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
    
            }
    }
    
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    R.layout.list_row, list);
            spinner.setAdapter(adapter);
    

    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" />
    
    0 讨论(0)
  • 2020-12-10 03:27

    From the API level 16 and above, you can use following code to change the drop down icon in spinner. just goto onItemSelected in setonItemSelectedListener and change the drawable of textview selected like this.

     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) {
               }
            });
    

    hope it will help somebody.

    0 讨论(0)
  • 2020-12-10 03:28

    A complete answer for me would be something like:

    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);
        }
    
    }
    

    and in res/layout add new xml file:

    (in 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="#00f0ff" />
    
    0 讨论(0)
  • 2020-12-10 03:29

    Building on noobProgrammer answer, as singleLine has been deprecated, a quick updated version of the spinner_item.xml for anyone who is looking for a answer for this.

    <?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>
    
    0 讨论(0)
  • 2020-12-10 03:34

    Here You have to set your spinner_item.xml in your array adapter. Add this piece of code in your .java file

    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..
    
    0 讨论(0)
  • 2020-12-10 03:35
    Spinner spnCategory= (Spinner)findViewById(R.id.my_spinner);
    ..
    
    ArrayAdapter<String> adptSpnCategory = new ArrayAdapter<String>this,R.layout.custom_spinner_item, alCategoryName);
    adptSpnCategory.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spnCategory.setAdapter(adptSpnCategory);
    spnCategory.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
     public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
     {
     }
     public void onNothingSelected(AdapterView<?> arg0) 
     {
     }
    });
    
    0 讨论(0)
提交回复
热议问题