首页 > 解决方案 > 微调项目的单独背景颜色

问题描述

我想为旋转器个体的每个项目的背景着色。这些项目使用以下代码设置:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.duesentypen, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

十六进制值存储在数组中。而索引计数是指项目计数。例如:

String[] hex = {"#886da8", "#ffc3cf","#ef9b00", "#2bb430", "#f7dc01", "#bc65a2", "#487ebf","#e00124","#b36634","#949494", "#ffffff","#000000","#4bbbd0", "#8b6d9f", "#8ccff4"};
//color for the first spinner item: hex[0]
//color for the second spinner item: hex[1]

我怎样才能以最好的方式做到这一点?

标签: javaandroidspinnerandroid-spinner

解决方案


尝试根据位置改变颜色。

final List<String> plantsList = new ArrayList<>(Arrays.asList(plants));

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.duesentypen, android.R.layout.simple_spinner_item){
            @Override
            public View getDropDownView(int position, View convertView,
                                        ViewGroup parent) {
                View view = super.getDropDownView(position, convertView, parent);
                TextView tv = (TextView) view;

        switch(position) {
             case 0:
                tv.setTextColor(Color.parseColor("#FF7C7967"));
             case 1:
                tv.setTextColor(Color.parseColor("#FF7C7967"));
                   }

                return view;
            }
        };

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

推荐阅读