输入价格单小数点的EditView

SEGGER Embedded Studio初体验 先楫HPM5E00EVK开发环境搭建 阅读详情

转载自那里忘记了,侵权即删

package com.guo.qlzx.nongji.client.Costom;

import android.content.Context;
import android.support.v7.widget.AppCompatEditText;
import android.text.Editable;
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.method.DigitsKeyListener;
import android.util.AttributeSet;

/**
 * Created by 李 on 2018/4/20.
 */

public class AmountEditText extends AppCompatEditText implements TextWatcher {


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

    public AmountEditText(Context context) {
        super(context);
        init();
    }

    private void init() {
        //设置输入框允许输入的类型(正则)
        setKeyListener(DigitsKeyListener.getInstance("0123456789."));
        //设置输入字符
        setFilters(new InputFilter[]{inputFilter});
        addTextChangedListener(this);
    }

    private InputFilter inputFilter = new InputFilter() {
        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            // 删除等特殊字符,直接返回
            if (TextUtils.isEmpty(source)) {
                return null;
            }
            String dValue = dest.toString();
            String[] splitArray = dValue.split("\\.");
            if (splitArray.length > 1) {
                String dotValue = splitArray[1];
                int diff = dotValue.length() + 1 - 2;//2表示输入框的小数位数
                if (diff > 0) {
                    return source.subSequence(start, end - diff);
                }
            }
            return null;
        }
    };

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (TextUtils.isEmpty(s)) {
            return;
        }
        //第一个字符不为小数点
        if (s.length() == 1 && s.toString().equals(".")) {
            setText("");
            return;
        }
        int counter = counter(s.toString(), '.');
        if (counter > 1) {
            //小数点第一次出现的位置
            int index = s.toString().indexOf('.');
            setText(s.subSequence(0, index + 1));
        }
        setSelection(getText().toString().length());
    }

    /**
     * 统计一个字符在字符串中出现的次数
     *
     * @param s 字符串
     * @param c 字符
     * @return 數量
     */
    public int counter(String s, char c) {
        int count = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == c) {
                count++;
            }
        }
        return count;
    }

    @Override
    public void afterTextChanged(Editable s) {
        if (listener != null) {
            listener.onTextChanged(getText().toString());
        }
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public OnTextChangeListener listener;

    public void setListener(OnTextChangeListener listener) {
        this.listener = listener;
    }

    public interface OnTextChangeListener {

        void onTextChanged(String s);

    }
}

FCTA/FCTB 前方交通穿行预警/制动系统技术规范 FCTA&FCTB前方交叉路口预警制动系统是针对十字路口和停车场等"鬼探头"场景设计的驾驶辅助系统。系统在自车速度0-40km/h范围内工作,通过角雷达和摄像头检测侧向来车. 阅读详情

相关推荐

异次元发卡最新漏洞0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入(user、admin均存在)。其中,user处有过滤,admin无。 将恶意脚本插入后,管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后,会新增一个管理员用户,进而获得权限。鉴于漏洞还没有泛滥,而且很多站都有漏洞。EXP暂时不公开。需要学习可以加入知识星球

白昼小丑的博客 4584

editview输入数字限制

1、只能输入小数点后两位(0.00) //输入框监听 binding.enterAmount.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int coun...

Hunter2916的博客 1188

单点DToF激光测距传感器各家产品的比较

汇总DToF 单点测距传感器的相关信息

Linux 设备驱动概述及开发环境构建 (一) 1771

Android testview editText 输入价格(0.00的格式)和件数(没有小数)的监听器

这个是对价格,这个监听器是在别人写的基础上做了优化,只能输入一个点,当时两个的时候输入不进去的, 在主函数里面调取 unitprice = (TextView) findViewById(R.id.unitprice); setPricePoint(unitprice);public static void setPricePoint

u012922981的专栏 1359

从SPICE到电磁场:非线性器件在CST场路协同仿真中的建模艺术

本文深入探讨了非线性器件在CST场路协同仿真中的建模技术,重点分析了SPICE模型与电磁场仿真的集成方法。通过对比线电流模型和面电流模型的优缺点,结合实际案例展示了二极管阵列在电磁散射调控中的应用,为工程师提供了优化仿真精度与效率的实用技巧。

pandas7gardener的博客 198

40分钟快速入门Dart基础(上)

针对final 和const 理解的有点模糊的可以参考这篇文章: 可以参考这里Flutter 知识梳理(Dart)-Dart中static final const 区别看是不是超级好上手,好操作~其实Dart的整个学习起来还是蛮简单的,对于有基础的老司机更简单一些。分分钟敲起来~这篇文章就简单的介绍到这里如何短时间快速入门Dart,避免入坑。由于是想让大家快速入门Flutter,所以针对上面的这些章节我们讲解的只是一些在开发Flutter 过程中常用的一些方法和函数。

qq_7813180 4568

android输入框输入价格,小数点后留两位简单实现

[html] view plaincopy 正好碰到这种情况,就记录下来吧,实现起来很简单   xml文件里加个靠右限制就把光标移到右边去了,初始值设置成0.00 [html] view plaincopy EditText           android:id="@+id/id_

syf0515的专栏 766

高杂合度基因组组装实战:Hifiasm参数调优与purge_dups过滤效果对比(附猪毛菜案例)

本文深入探讨了高杂合度基因组组装中Hifiasm参数调优与purge_dups过滤的实战效果对比,通过猪毛菜案例详细解析了两种方法的适用场景与优化策略。文章重点分析了purge_dups在contig过滤中的显著效果,为基因组组装提供了关键的技术参考。

weixin_29232121的博客 495

Android自定义View之金额输入EditText

之前做的一个项目需求做精确到小数点后两位的文本输入框,所以就自定义了一个EditText ,效果是这样的:实现了四个需求: 1.输入到小数点后两位停止输入 2.直接输入小数点后,前面自动补零 3.设置最大金额,超过后自定清除并提示 4.金额前带零自定清除源码:https://github.com/LiKaiRabbit/MoneyEditText使用直接请添加依赖allprojects {

likai_rabbit的博客 758

无网络环境部署:手动获取并安装OneNote for Windows 10完整指南

本文提供了一份详尽的OneNote for Windows 10离线安装指南。针对无网络或内网隔离环境,详细介绍了如何从官方渠道获取正确的产品ID,利用第三方工具下载纯净的.appxbundle安装包,并解决系统兼容性与依赖框架问题。最后,通过PowerShell管理员命令完成安全部署,是IT管理员和高级用户在离线环境下部署UWP应用的实用参考。

loss4bartender的博客 495

AUTOSAR CP R18-10 架构总览与导航

AUTOSAR CP R18-10 架构总览 本文档系统整理了AUTOSAR CP R18-10版本的199篇技术规范,涵盖7大架构层级: 应用层(15篇):包含车身舒适、底盘控制、HMI、安全系统、动力系统等AI应用 RTE(1篇):虚拟功能总线规范 服务层(159篇):细分为系统服务(OS/ECU管理/加密)、存储服务、通信服务(CAN/LIN/Ethernet) ECU抽象层(20篇):I/O与通信硬件抽象 MCAL(41篇):微控制器驱动层 复杂驱动(14篇):CDD设计与SPAL支撑 规范模板(2

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 717

Android 控制edittext或者textview输入的为指定的整数位和小数位

Android 控制edittext或者textview输入的为指定的整数位和小数位,关于这个博客有一篇文章,不过要补充的是自定义键盘上如果出现00,或者其他自定义的数据如20000之类的,对于控制小数位的方式,代码如下: package client.verbank.mtp.allone.component.util; import android.text.InputFilter; imp

你好邱林和的专栏 3891

智能Agent如何重塑企业流程

在当今数字化时代,企业流程的效率和敏捷性至关重要。传统企业流程往往受限于人工操作,效率低下、成本高昂,难以适应快速变化的市场环境。智能Agent作为一种新兴技术,凭借其强大的智能化能力,正在逐渐改变企业流程的运作模式,为企业带来新的机遇和挑战。智能Agent是一种能够感知环境、自主决策、执行任务的软件实体。它可以模拟人类的智能行为,例如学习、推理、规划和沟通。通过将智能Agent嵌入到企业流程中,可以实现流程的自动化、优化和智能化,从而提高效率、降低成本、提升客户体验。8.1 研究成果总结。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 872

Android使用EditText输入浮点型数字设置第一位不能输入小数点并且保留两位小数

最近做一个非常简单的功能是用EditText输入价格,需求是第一位不能输入小数点,并且要保留小数点后两位。 起初上网百度了一个方法,但是不够严谨,会crash,所以我在这里把他的方法优化了一下。 1.首先,要输入浮点型数字,在xml的EditText里要加上一个属性:android:inputType="numberDecimal"; 2.然后在该EditText所在的Activity或者F...

Lpy的博客 5852

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android 限制输入数字大小写,android edittext 限制小数点后最多只能输入两位数字...

android:inputType="numberDecimal"private InputFilter lengthFilter = new InputFilter() {@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) ...

weixin_30364109的博客 836

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mfc现实edit控件输入限制(只能输入数字和小数点)

软件开发工具:vs2010 前段时间的一个项目需要显示温度值,需要计算热敏电阻端adc采样值和温度的一一对应关系,因为计算量大,就想到自己写一个简单的计算器方便计算。这写代码过程中,需要处理edit数据输入,因为计算的数都是大于零的,我这里只实现了edit只能输入数字和小数点的功能。 1、添加一个C++类,继承了基类CEdit,eg:class CMyEdit : public

空气中的告白专栏 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

EditText限制只能输入数字且能输入小数点,限制小数点位数

EditText只能输入小数和限制位数

qq_38363506的博客 3307

android EditText输入金额,限制位数和显示小数点后几位

android很多项目都会有输入框,还有输入框的限制,下面给出参考,总结别的文章的 , 自己做出记录和分享 public class CashierInputFilter implements InputFilter { Pattern mPattern; //输入的最大金额 /** * java int 类整数的最大值是 2 的 31 次方 - 1 = 2147483648 - 1 = 214...

kingsley1212的博客 1099

EditView设置判断金额

工具类 输入0的话,只能后面输入小数点,输入小数点变成0.,小数点后保留俩位 public class CashierInputFilter implements InputFilter { Pattern mPattern; //输入的最大金额 private static final double MAX_VALUE = 49999.99; //小数点后的位数 private static final int POINTER_LENGTH = 2;

jiaosheng1的博客 268

自定义TextView/EditText,实现显示(或输入)小数、数字前缀(¥$...)、千分符、最大值等

DecimalTextView 自定义TextView/EditText,实现显示(或输入)小数、数字前缀(¥$…)、千分符、最大值等。 API > 14 ParfoisDecimalTextView演示 ParfoisDecimalEditText演示 // 1.添加jitpack仓库 allprojects

有时丶 1509

Android基础--EditText输入框限制小数的位数解决方法

在开发中,会有一些需求,EditText输入框,只可以输入一位小数,或者只可以输入2位小数,那么我们该去怎么做呢? 首先在xml文件里面: <EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="100dp" http

1万+

EditText关于输入小数点的小问题

最近项目马上要上线了,有时间会尽量去整理所做的东西,不然下次做的时候,又要百度了。 今天主要说的是EditText的输入问题,看上出很简单吗,只需要在xml文件中声明inputType=”number/text/numberDecimal”,但是啊,即使你输入了numberDecimal,大约似乎editText中还是不能输入小数点,为什么呢?对不起啊,毕竟我也是小白,我也不清楚,但是找到一个方法

成长的烧年 3296

EditView 金额输入框 限制只能输入数字、限制输入数字的大小和小数位

EditView 金额输入框 限制只能输入数字、限制输入数字的大小和小数位

顺着天赋做事,逆着性格做人 192

Android EditText设置只能输入数字和小数点

EditText可以设置多种输入方式,其中若要设置输入数字和小数点时应注意一下几点: 有两种写法:一、利用安卓自身的语法。二、利用正则表达式。 一、利用安卓自身的语法 1.如果设置只输入数字 edittext.setInputType( InputType.TYPE_CLASS_NUMBER); 此时只会弹出数字输入框,符号点击后不会输入到文字框中 2.只能输入数字和小数点 ...

Beluga_白鲸 6万+

Android EditText只输入数字和小数点

xml属性 android:inputType="numberDecimal" 代码 mEditText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); 更多关于EditText:https://blog.youkuaiyun.com/yechaoa/article/details/52963857

yechaoa 9134

Android EditText限制输入两位小数

一、概述 发现输出产品价格的时候不能简单的设置android:inputType为number或者numberDecimal,因为这样不能输入小数或者小数位能够输入多个,这样不符合实际生活需求,所以只能限制输入两位。 二、实现 主要是借助addTextChangedListener进行监听输入文本框的内容,声明一个textWatcher来执行监听, 前提是设置文本输入类型为: andro...

JUN_LLLL的博客 3556
上一篇: android 左滑删除 一个简单的自定义控件
下一篇: Android 给view加阴影
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值