如何更改Android中启用的NumberPicker中选定数字的颜色

如何更改Android中启用的NumberPicker中选定数字的颜色,android,numberpicker,Android,Numberpicker,我想在MyNumberPicker上实现这种效果 到目前为止,我实现了一个NumberPicker类并更改了几个属性,但有趣的是: public class NumberPicker extends android.widget.NumberPicker{ public NumberPicker(Context context, AttributeSet attrs) { super(context, attrs); } @Override

我想在MyNumberPicker上实现这种效果

到目前为止,我实现了一个NumberPicker类并更改了几个属性,但有趣的是:

public class NumberPicker extends android.widget.NumberPicker{

    public NumberPicker(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void addView(View child) {
        super.addView(child);
        updateView(child);
    }

    @Override
    public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) {
        super.addView(child, index, params);
        updateView(child);
    }

    @Override
    public void addView(View child, android.view.ViewGroup.LayoutParams params) {
        super.addView(child, params);
        updateView(child);
    }

    private void updateView(View view) {
        if(view instanceof EditText){
            ((EditText) view).setTextSize(getResources().getDimension(R.dimen.numberpicker_text_size));
           ((EditText) view).setTextColor(ContextCompat.getColor(getContext(), R.color.colorPrimaryDark));

        }
    }
但我得到的效果是:

我获取所有蓝色文本(已选择、未选择、活动、非活动)如何仅在启用的NumberPicker和选定值上获取此蓝色


感谢您的支持

使用所需属性创建一个
颜色状态列表
。然后将这些应用于
EditText

final ColorStateList colors = new ColorStateList(
                new int[][]{
                        new int[]{android.R.attr.state_selected},
                        new int[]{-android.R.attr.state_selected}
                },
                new int[]{selectedColorCode, defaultColor}
        );

((EditText) view).setTextColor(colors);

我使用selectedColorCode和DefaultColorPrimary以及colorPrimaryDark,但是我只看到应用了colorPrimary,那么这和((EditText)视图之间的区别是什么呢;我看到他们两个都是彩色的。您可以使用setOnTouchListener并更改numberPicker的EditText颜色来更改唯一选定的数字,就像您的问题的第一幅图像一样。