如何在Spinner中为已关闭和打开的下拉列表使用不同的文本颜色和大小

时间:2014-10-27 17:24:03

标签: android android-spinner

我希望以Spinner下拉列表关闭时显示的所选项目显示不同颜色的Spinner的下拉列表项目,如何编辑我的微调器适配器以解决此问题?

public class MySpinner extends ArrayAdapter<String> {
    private String[] options;

    private String mCustomText = "";

    public MySpinner(Context context, String options[]) {
        super(context, R.layout.spinner_item, options);
        this.options = options;
    }

    public MySpinner(Context context, String options[], int resID) {
        super(context, resID);
        this.options = options;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        int specialItemIndex = options.length - 1;
        return view;
    }

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        return super.getDropDownView(position, convertView, parent);
    }
}

enter image description here

换句话说,我只需要用红色圈出的项目的文字颜色和大小与用蓝色圈出的下拉列表中的项目不同...实际使用R.layout.spinner_item两者都使用相同的文字大小和颜色在这个布局

1 个答案:

答案 0 :(得分:0)

您可以将Spinner标题文字颜色设置为蓝色(例如),而Spinner项目具有默认颜色。只需在onItemSelected()回调中应用它即可。像这样:

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long itemId) {
                    ((TextView)view).setTextColor(Color.BLUE);
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) { }
        });

请确保您的SpinnerViewTextView,以便更改文字颜色。