如何更改微调器的第一个元素的文本颜色?

问题描述 投票:0回答:1

我必须更改微调器第一个元素的颜色,该元素显示为默认元素。尝试了各种不起作用的方法。提供有效的解决方案。

android layout colors spinner
1个回答
0
投票

我经过一些修改后检查了this解决方案,这个答案将帮助你改变第一个spinner的项目。

在onCreate中,将常用方法称为setSpinnerValue

ArrayList<String> testarray = new ArrayList<String>();
        testarray.add("item0");
        testarray.add("item1");
        testarray.add("item2");
        testarray.add("item3");
        setSpinnerValue(testarray,timeSpinner,arrayAdapter);

在这里,我创建了使用arrayListspinnerarrayAdapter作为参数的公共方法,用于在adapter中设置微调器项目。

public void setSpinnerValue(final ArrayList<String> list, Spinner spinner, ArrayAdapter<String> adapter)
    {
        try {
            adapter = new ArrayAdapter<String>(TimePicker_Activity.this, android.R.layout.simple_spinner_item, list) {

                @Override
                public boolean isEnabled(int position) {
                    String val = String.valueOf(list.get(position));
                    boolean isFalse = val.contains(":False");
                    return !isFalse;
                }

                @Override
                public boolean areAllItemsEnabled() {
                    return false;
                }

                @Override
                public View getDropDownView(int position, View convertView, android.view.ViewGroup parent) {
                    View v = convertView;
                    if (v == null) {
                        Context mContext = this.getContext();
                        LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        v = vi.inflate(android.R.layout.simple_spinner_dropdown_item, null);
                    }
                    TextView tv = (TextView) v.findViewById(android.R.id.text1);
                    String val = String.valueOf(list.get(position));
                    tv.setText(val.replace(":False", ""));

                    switch (position) {
                        case 0:
                            tv.setTextColor(android.graphics.Color.GRAY);
                            break;

                        default:
                            tv.setTextColor(getResources().getColor(R.color.colorPrimary));
                            break;
                    }

                    return v;
                }
            };
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setSelection(0, false);
            spinner.setAdapter(adapter);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

获得如下输出,

© www.soinside.com 2019 - 2024. All rights reserved.