How to change spinner text color

匿名 (未验证) 提交于 2019-12-03 01:10:02

问题:

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

spinner_item.xml

What shall i really do in java code:? Any responses will be aprecieted Please answer clearly with as more details as you can

回答1:

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 yourAdapter; yourSpinner= (Spinner) findViewById(R.id.yourSpinnerID); yourSpinner.setAdapter(yourAdapter); yourAdapter= new ArrayAdapter(this, R.layout.spinner_item, value); //here value is your items in spinner.. 


回答2:

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 array = new ArrayList();         array.add("item0");         Spinner spinner1;         ArrayAdapter mAdapter;         spinner1 = (Spinner) findViewById(R.id.spinner2);         mAdapter = new ArrayAdapter(this, R.layout.spinner_item, array);         spinner1.setAdapter(mAdapter);     }  } 

and in res/layout add new xml file:

(in spinner_item.xml)



回答3:

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 adapter = new ArrayAdapter(this,                 R.layout.list_row, list);         spinner.setAdapter(adapter); 

list_row.xml



回答4:

This is the simplest Method which I executed for spinner's text. I know its late but it will help some one.

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


回答5:

Spinner spnCategory= (Spinner)findViewById(R.id.my_spinner); ..  ArrayAdapter adptSpnCategory = new ArrayAdapterthis,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)   {  } }); 


回答6:

I have done this as following: I have used the getDropDownView() and getView() methods.

Use getDropDownView() for opened Spinner.

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

And use getView() for closed Spinner.

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


回答7:

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.



回答8:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!