代码改变世界

EditText输入框实现最多到小数点后两位(金额显示)

  1. package com.lianpos.util;
  2.  
  3. import android.text.Editable;
  4. import android.text.TextWatcher;
  5. import android.widget.EditText;
  6.  
  7. /**
  8. * Created by wangshuai on 2017/11/29 0029.
  9. */
  10.  
  11. public class MoneyEditText {
  12. public static void setPricePoint(final EditText editText) {
  13.  
  14. editText.addTextChangedListener(new TextWatcher() {
  15. @Override
  16. public void onTextChanged(CharSequence s, int start, int before,
  17. int count) {
  18. if (s.toString().contains(".")) {
  19. if (s.length() - 1 - s.toString().indexOf(".") > 2) {
  20. s = s.toString().subSequence(0,
  21. s.toString().indexOf(".") + 3);
  22. editText.setText(s);
  23. editText.setSelection(s.length());
  24. }
  25. }
  26. if (s.toString().trim().substring(0).equals(".")) {
  27. s = "0" + s;
  28. editText.setText(s);
  29. editText.setSelection(2);
  30. }
  31. if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {
  32. if (!s.toString().substring(1, 2).equals(".")) {
  33. editText.setText(s.subSequence(0, 1));
  34. editText.setSelection(1);
  35. return;
  36. }
  37. }
  38. }
  39. @Override
  40. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  41.  
  42. }
  43. @Override
  44. public void afterTextChanged(Editable s) {
  45. // TODO Auto-generated method stub
  46. }
  47. });
  48. }
  49. }

  使用方法:

  1. MoneyEditText.setPricePoint(number_unit_edit);

  number_unit_edit是edittext,如下:

  1. <EditText
  2. android:id="@+id/number_unit_edit"
  3. android:layout_width="100dp"
  4. android:layout_height="wrap_content"
  5. android:layout_alignParentRight="true"
  6. android:background="@null"
  7. android:gravity="right"
  8. android:hint="0.00"
  9. android:maxLength="7"
  10. android:inputType="numberDecimal"
  11. android:padding="15dp"
  12. android:textColor="#333333"
  13. android:textSize="16dp" />

  

Android金额输入EditText共通方法的更多相关文章

  1. C#验证对象中的属性是否为空的共通方法

    在后台接口处理时,经常需要对请求的参数做验证.因此提取了共通方法,方便进行判断. /// <summary> /// 数据验证工具类 /// </summary> public ...

  2. [转]Android学习:EditText的使用方法

        EditText是在Android开发中经常被使用到的控件,主要用来获取用户的输入内容.   1.EditText常用属性   EditText继承自TextView,所以EditText也拥 ...

  3. Android 控件EditText的setOnEditorActionListener方法的理解

    需要注意的是 setOnEditorActionListener这个方法,并不是在我们点击EditText的时候触发,也不是在我们对EditText进行编辑时触发,而是在我们编辑完之后点击软键盘上的回 ...

  4. Vue 使用mixin抽取共通方法

    引入原因: 当一段逻辑在不同的地方使用时 step-1: 定义mixin文件,methods里有一个handleToLink方法 /** * this mixin file will be used ...

  5. js中获取URL参数的共通方法getRequest()方法

    getRequest : function() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new ...

  6. 【Python】自动化测试框架-共通方法汇总

    1.滚动滚动条(有的时候页面元素element取得对但是并没有回显正确的数据,可能是因为页面第一次加载很慢,所以页面可能做了滚动到哪里就加载到哪里的效果,此刻我们就需要用到滚动条自动滚动这段代码让页面 ...

  7. 一个共通的viewModel搞定所有的编辑页面-经典ERP录入页面(easyui + knockoutjs + mvc4.0)

    http://www.cnblogs.com/xqin/archive/2013/06/06/3120887.html 前言 我写代码喜欢提取一些共通的东西出来,之前的一篇博客中说了如何用一个共通的v ...

  8. Android 防止按钮连续点击的方法(Button,ImageButton等)

    防止按钮连续点击  其实实现很简单 共通方法 public class Utils { private static long lastClickTime; public static boolean ...

  9. List排序共通代码

    此共通方法可以根据特定字段进行排序 package com.gomecar.index.common.utils; import java.lang.reflect.Method; import ja ...

随机推荐

  1. web端 复合控件 响应回发

    AutoPostback="true";   自动提交 RdiobuttonList 属性→设计→编辑项→{ Enabled   是否可用 selected 是否选中 Text   ...

  2. HDU 1864 最大报销额(01背包,烂题)

    题意:被坑惨,单项不能超过600,其实是一张发票上A类/B类/C类的总和分别不能超过600. 思路:此题的数据很烂.用贪心也能过,用01背包也可以.都测试不出到底那些是错的. #include < ...

  3. COGS 1215. [Tyvj Aug11] 冗余电网

    ★   输入文件:ugrid.in   输出文件:ugrid.out   简单对比时间限制:1 s   内存限制:128 MB TYVJ八月月赛提高组第2题 测试点数目:5 测试点分值:20 --内存 ...

  4. UITableView设计思想 考察

    整体使用了build模式:单是组织结构混乱:不符合人类思维. UITableViewDataSource:描述了View的要素个数情况:并担负了builder功能. UITableViewDelega ...

  5. HTML5中的SSE(服务器推送技术)

    本文原链接:https://cloud.tencent.com/developer/article/1194063 SSE技术详解:一种全新的HTML5服务器推送事件技术 前言 概述 基本介绍 与We ...

  6. fence_vmware_soap UnicodeEncodeError

    执行如下命令 fence_vmware_soap -z -l administrator@vsphere.local -p 2wsx@QAZ -a 10.0.2.200 -o list --ssl-i ...

  7. Vue处理ajax请求

    Ajax请求 1>解决跨域问题 1.1前端解决.只需要在vue.config.js中增加devServer节点增加代理: const path = require("path" ...

  8. C++ NULL与nullptr的区别

    C与C++中空指针的区别 在C里面,由于处处都要使用指针,所以导致NULL遍布各地.我们先来看C99是怎么定义NULL的: NULL can be defined as any null pointe ...

  9. Element-ui tree组件自定义节点使用方法

    工作上使用到element-ui tree 组件,主要功能是要实现节点拖拽和置顶,通过自定义内容方法(render-content)渲染树代码如下~   <template> <di ...

  10. NOIP模拟赛 密室逃脱

    密室逃脱(maze.*) 即使czhou没有派出最强篮球阵容,机房篮球队还是暴虐了校篮球队.为了不打击校篮球队信心,czhou决定改变训练后的活动.近来,江大掌门的徒弟徒孙们纷纷事业有成,回到母校为机 ...