Android EditText监听小数点让用户只能输入小数点后两位

最近项目需要输入价格,但是不想让用户在小数点后面输入太多,所以我封装了一个。当用户输入小数点的时候 监听小数点后面的位数,只要大于两位就立马删掉,封装好了,直接可以拿过来用!

public static void setPricePoint(final EditText editText) {
		editText.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				if (s.toString().contains(".")) {
					if (s.length() - 1 - s.toString().indexOf(".") > 2) {
						s = s.toString().subSequence(0,
								s.toString().indexOf(".") + 3);
						editText.setText(s);
						editText.setSelection(s.length());
					}
				}
				if (s.toString().trim().substring(0).equals(".")) {
					s = "0" + s;
					editText.setText(s);
					editText.setSelection(2);
				}

				if (s.toString().startsWith("0")
						&& s.toString().trim().length() > 1) {
					if (!s.toString().substring(1, 2).equals(".")) {
						editText.setText(s.subSequence(0, 1));
						editText.setSelection(1);
						return;
					}
				}
			}

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

			}

			@Override
			public void afterTextChanged(Editable s) {
				// TODO Auto-generated method stub

			}

		});

	}
时间: 2024-10-15 22:11:40

Android EditText监听小数点让用户只能输入小数点后两位的相关文章

限制只能输入小数点后两位

<script type="text/javascript"> function strNumber(elm){ elm.value = elm.value.replace(/^[^0-9.]*(\d*[\.]?\d{0,2})\w*$/,'$1'); }</script> <input type="text"  onkeyup="strNumber(this)"/>

控制input标签中只能输入数字以及小数点后两位

js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { obj.value = ""; } if (obj != null) { //检查小数点后是否对于两位http://blog.csdn.net/shanzhizi if (obj.value.toString().split(".").length > 1 &a

mysql格式化小数保留小数点后两位(小数点格式化)

格式化浮点数的问题,用format(col,2)保留两位小数点,出现一个问题,例如下面的语句,后面我们给出解决方法 SELECT FORMAT(12562.6655,2); 结果:12,562.67 查看文档:Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has

input输入框只能输入正数和小数(保留小数点后两位)

1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script type="javascript"> 4 $(function(){ 5 $("#txtNum").keyup(function () { 6 $(this).val(ChangeNumValue($(this).val())); 7 }); 8 9 10 })

android EditText监听和长度监测事件

<?xml version="1.0" encoding="utf-8"?> <!-- 定义基础的LinearLayout布局 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height=&q

android editText 监听事件

在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:singleline="true" 在activity_main.xml文件中,定义了8个EditText,imeOptions分别是: actionDone 完成 对应 EditorInfo.IME_ACTION_DONE actionGo 前进 对应 EditorInfo.IME_ACTION

JS 只能输入数字和两位小数的JS

最近项目压的喘不过气来,所以都基本不来园子了,手头还有好多事,就不扯淡了,直接上内容 JS代码: 1 function clearNoNum(value){ 2 //清除"数字"和"."以外的字符 3 value = value.replace(/[^\d.]/g,""); 4 5 //验证第一个字符是数字而不是 6 value = value.replace(/^\./g,""); 7 8 //只保留第一个. 清除多余的 9

金融支付 输入金额 小数点后两位 ,首位输入小数点

封装 如下工具类 在EditText 的addTextChangListener( )方法内的onTextChangge方法内,调用工具内即可. 工具类如下 /** * onTextChanged * @param sequence (CharSequenc s * @param editText */ public static void formatDot(CharSequence sequence,EditText editText){ String s = sequence.toStri

Android EditText 输入金额(小数点后两位)

EditText mEdit = new EditText(context); InputType.TYPE_NUMBER_FLAG_DECIMAL.小数点型 InputType.TYPE_CLASS_NUMBER 整数型 设置Input的类型两种都要 mEdit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL|InputType.TYPE_CLASS_NUMBER); 设置字符过滤 mEdit.setFilters(new InputFilter