简体   繁体   中英

How to change the background color of a text in a spinner item?

How can I change the background color of an option item of a spinner? I don't want to change the whole background color, so i can't define it in the layout.

String[] strings = {"Somelist", "SOmelist"};

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
        spinner.setAdapter(new MyAdapter(this, R.layout.row, strings));

....    

public class MyAdapter extends ArrayAdapter<String> {

            public MyAdapter(Context context, int textViewResourceId,
                    String[] objects) {

                super(context, textViewResourceId, objects);

            }

            @Override
            public View getDropDownView(int position, View convertView,
                    ViewGroup parent) {

                return getCustomView(position, convertView, parent);

            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                return getCustomView(position, convertView, parent);

            }

            public View getCustomView(int position, View convertView,
                    ViewGroup parent) {

                LayoutInflater inflater = getLayoutInflater();

                View row = inflater.inflate(R.layout.row, parent, false);

                TextView label = (TextView) row.findViewById(R.id.company);

                label.setText(strings[position]);

                TextView sub = (TextView) row.findViewById(R.id.sub);

                sub.setText(subs[position]);

///You can have different combinations on which items in the list you want to change background, text or anything else

                if (position % 2 == 0) {
                    label.setTextColor(Color.BLUE);
                    row.setBackgroundColor(Color.RED);
                }

                return row;

            }

        }

Layout:

<TextView
    android:id="@+id/company"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dip"
    android:layout_marginTop="2dip"
    android:padding="3dip"
    android:text="CoderzHeaven"
    android:textStyle="bold" />

<TextView
    android:id="@+id/sub"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/company"
    android:layout_marginLeft="5dip"
    android:padding="2dip"
    android:text="Heaven of all working codes" />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM