Android NumberPicker详细使用

 

 

1.普通使用

 

1.1.布局

                    

 

1.2.Java代码

/**     * Android NumberPicker     * */    private void initNumberPicker() {        NumberPicker numberPicker = findViewById(R.id.activity_main_testnumberpicker);        //设置最大值        numberPicker.setMaxValue(150);        //设置最小值        numberPicker.setMinValue(50);        //设置当前值        numberPicker.setValue(105);        //设置滑动监听        numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {            //当NunberPicker的值发生改变时,将会激发该方法            @Override            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {                String toast = "oldVal:" + oldVal + "   newVal:" + newVal;                Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();            }        });    }

 

1.3.效果

 

 

 

 

 

2.自定义NumberPicker(设置字体颜色,字体大小,分割线颜色)

 

2.1.自定义View

public class MyNumberPicker extends NumberPicker {    /**     * 构造方法 NumberPicker     * */    public MyNumberPicker(Context context) {        super(context);    }    public MyNumberPicker(Context context, AttributeSet attrs) {        super(context, attrs);    }    public MyNumberPicker(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    /**     * addView方法 ViewGroup     * */    @Override    public void addView(View child) {        super.addView(child);        setNumberPickerView(child);    }    @Override    public void addView(View child, int index) {        super.addView(child, index);        setNumberPickerView(child);    }    @Override    public void addView(View child, int width, int height) {        super.addView(child, width, height);        setNumberPickerView(child);    }    @Override    public void addView(View child, ViewGroup.LayoutParams params) {        super.addView(child, params);        setNumberPickerView(child);    }    @Override    public void addView(View child, int index, ViewGroup.LayoutParams params) {        super.addView(child, index, params);        setNumberPickerView(child);    }    public void setNumberPickerView(View view) {        if (view instanceof EditText) {            ((EditText) view).setTextColor(ContextCompat.getColor(getContext(), R.color.colorPrimary)); //字体颜色            ((EditText) view).setTextSize(20f);//字体大小        }    }}

 

2.2.布局

                    

 

 

2.3.Java代码

/**     * Android NumberPicker     * */    private void initNumberPicker() {        MyNumberPicker numberPicker = findViewById(R.id.activity_main_testnumberpicker);        //设置最大值        numberPicker.setMaxValue(150);        //设置最小值        numberPicker.setMinValue(50);        //设置当前值        numberPicker.setValue(105);        //关闭编辑模式        numberPicker.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);        //分割线颜色        setNumberPickerDividerColor(numberPicker);        //设置滑动监听        numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {            //当NunberPicker的值发生改变时,将会激发该方法            @Override            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {                String toast = "oldVal:" + oldVal + "   newVal:" + newVal;                Toast.makeText(MainActivity.this, toast, Toast.LENGTH_SHORT).show();            }        });    }    /**     * 自定义滚动框分隔线颜色     */    private void setNumberPickerDividerColor(NumberPicker number) {        Field[] pickerFields = NumberPicker.class.getDeclaredFields();        for (Field pf : pickerFields) {            if (pf.getName().equals("mSelectionDivider")) {                pf.setAccessible(true);                try {                    //设置分割线的颜色值                    pf.set(number, new ColorDrawable(ContextCompat.getColor(this, R.color.colorPrimary)));                } catch (Exception e) {                    e.printStackTrace();                }                break;            }        }    }

 

2.4.效果图

 

 

更多相关文章

  1. 安卓中颜色种类
  2. android 添加预装的方法
  3. android notification和notificationmanager使用
  4. android 视频播放器
  5. android关于网络
  6. Android设置或清除默认桌面
  7. Android(安卓)设置全屏,画图,加载位图
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. 【Android】高效ListView
  2. linux学习笔记《一.烧写篇_android》
  3. Android各种资源详解
  4. repo使用
  5. 用Android NDK r6编译boost 1.47
  6. Android 自己动手写ListView学习其原理 2
  7. Android(安卓)TV Input Framework(TIF)--
  8. android无framework Java应用开发
  9. Android(安卓)中日期和秒数的转换
  10. Android菜单详解(四)——使用上下文菜单Con