NumberPicker

来源:互联网 发布:公众号运营知乎 编辑:程序博客网 时间:2024/05/20 04:09

NumberPicker:选择器类(类似于TimePicker)也可以提供文字的选择

这里写图片描述 这里写图片描述

创建方法:

  • 1.在布局中加入NumerPicker控件
  • 2.在代码中实例化
    NumberPicker Picker = (NumberPicker)findViewById(R.id.numberPicker);

  • 3.初始化Picker设置选择值的类型,最大和最小值默认值等

//设置选择类容为文本时:picker.setDisplayValue(stringArrays)//设置显示值为文本类型(如右上图)stringArrays为文本数组;picker.setMaxValue(stringArrays.length-1)//设置最大显示的值picker.setMinValue(0);//设置最小显示值 picker.setValue(2);//设置默认选择值为数组的第二项//默认选择类容为数字型picker.setMaxValue(20);picker.setMinValue(0);picker.setValue(10);//格式化显示picker.setFormatter(new NumberPicker.Formatter() {            @Override            public String format(int value) {            //当数字小于10,显示时前面加上一个0                String str = String.valueOf(value);                if(value<10){                str = "0"+str;                }                return str;            }        });

4.NumberPicker设置滚动和选择值改变监听事件

//当滚动Picker时会触发系统回调该方法        valuePicker.setOnScrollListener(new NumberPicker.OnScrollListener() {            @Override            public void onScrollStateChange(NumberPicker view, int scrollState) {            //scrollState有三种状态 SCROLL_STATE_FLING(靠惯性滑动状态)            //                     SCROLL_STATE_TOUCH_SCROLL(触摸滚轮状态)            //                     SCROLL_STATE_IDLE(手指离开滚轮状态)                if(scrollState==SCROLL_STATE_FLING){                    Toast.makeText(getContext(), "正在fling", Toast.LENGTH_SHORT).show();                }            }        });//当选择的值改变时,会触发系统调用该方法:        valuePicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {            @Override            public void onValueChange(NumberPicker picker, int oldVal, int newVal) {                Toast.makeText(getContext(), "原来的值时" + getResources().getStringArray(R.array.valuePicker)[oldVal] + "现在的值时" + getResources().getStringArray(R.array.valuePicker)[newVal], Toast.LENGTH_SHORT).show();            }        });