• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

NumberEditText: 数值控件,可通过增减微调数值,也可手动输入

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

NumberEditText

开源软件地址:

https://gitee.com/bvin_admin/NumberEditText

开源软件介绍:

NumberEditText

数值控件,可通过增减微调数值,也可手动输入。中间的输入框可以手动输入,两边的加减可以微调数值。

截图

1.设置增减量setZoom(Zoomable zoom),内置有一个BigDecimal实现增减的抽象类,只需要给定精度。

```  setZoom(new NumberEditText.Zoomer() {            @Override            public int scale() {                return 2;//精度:0表示加减1,1表示加减0.1,2表示加减0.01            }        });```也可以完全自己定义增减量,甚至可以设置增减量不一样```setZoom(new NumberEditText.Zoomable() {            @Override            public double increase(double origin) {                return 5;//增量5,点一下+就加5个值            }            @Override            public double decrease(double origin) {                return 10;//减量是10.点一下-就减10            }        })```如果没有设置,缺省为对值整数增减量为1

2.设置数值显示规则setNumberConvertor(NumberConvertor numberConvertor),比如可以在数值前面加上前缀或后缀单位什么的。完全可以实现自己的NumberConvertor,可以将number转换成任意你想要的数据,缺省为数字字符串也就是String.of(value)。

```setNumberConvertor(new NumberConvertor() {            @Override            public String convert(double value) {                return NumberFormat.getIntegerInstance().format(value);            }        });```

3.设置和获取当前值设置方法:public void setCurrentValue(double value),这里的值将会转换指定的NumberConvertor来显示在输入框里面,获取方法public double getCurrentValue()获取当前值。

4.设置最大值最小值,设置后输入框里的数值将自动校正,到达最大值或最小值两边的加减控件将无法再继续加减。设置最大值:public void setMaxValue(double maxValue)设置最小值:public void setMinValue(double minValue)

5.设置输入超时,当用户输入后一段时间停止输入将自动帮助用户确认当前值。public void setInputTimeout(long inputTimeout)

6.设置快速加减控件的速度,也就是长按加减递增递减的变化速度,参数是一个long型的毫秒数,值越小速度越快,反之越慢。public void setSpeedOfQuickControl(long speedOfQuickControl)

7.判断当前是否是空值,当没有输入返回true,当用户输入后清空时也返回true,有值返回false。public boolean isEmptyValue()

8.设置加减微调控件监听器,每加一次见一次都会触发监听器回掉。public void setZoomListener(ZoomListener zoomListener)

```    setZoomListener(new NumberEditText.ZoomListener() {                @Override                public void onValueIncreased(double value) {                    //增值一次                }                    @Override                public void onValueDecreased(double value) {                    //减值一次                }            });```

9.设置值改变监听器,当用户输入值变化,或者通过加减控件引发的值变化。ZoomListener是OnValueChangeListener的子集,也就是说触发ZoomListener一定会触发OnValueChangeListener,但触发OnValueChangeListener不一定会触发ZoomListener,因为还有手动输入会引发值得变化。public void setOnValueChangeListener(OnValueChangeListener l)

```setOnValueChangeListener(new NumberEditText.OnValueChangeListener() {            @Override            public void onValueChanged(double value) {                Toast.show(value);            }        });```

10.设置值触达范围监听器,也就是值抵达/超过最大值或最小值监听器。当用户通过加减控件把值加到最大值或减到最小值将触发此监听器,加减控件将不能超过最大值最小值设定,手动输入抵达或超过最小或最大值也会触发,超出范围后按下确认或失去焦点或超时将自动校正。public void setOnValueReachRangeListener(OnValueReachRangeListener l)

```setOnValueReachRangeListener(new NumberEditText.OnValueReachRangeListener() {            @Override            public void onValueReachMax(double input, double max) {                Toast.makeText(MainActivity.this, "您当前的年龄"+input+"岁不符合,不能超过"+max+"岁", Toast.LENGTH_SHORT).show();            }            @Override            public void onValueReachMin(double input, double min) {                Toast.makeText(MainActivity.this, "您当前的年龄"+input+"岁不符合,不能小于"+min+"岁", Toast.LENGTH_SHORT).show();            }        });```

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap