本文主要是介绍金融支付 输入金额 小数点后两位 ,首位输入小数点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
android 中editext 要处理金融业务的输入
封装 如下工具类 在EditText 的addTextChangListener( )方法内的onTextChangge方法内,调用工具内即可。
工具类如下
/*** onTextChanged* @param sequence (CharSequenc s* @param editText*/public static void formatDot(CharSequence sequence,EditText editText){String s = sequence.toString();if (s.contains(".")){/*** 如果小数点位数大于两位 截取后两位*/if (s.length()-1-s.indexOf(".")>2){s = s.substring(0, (s.indexOf(".") + 3));editText.setText(s);editText.setSelection(s.length());}}/*** 如果第一个输入为小数点 ,自动补零*/if(s.trim().substring(0).equals(".")){s ="0"+s;editText.setText(s);editText.setSelection(s.length());}/*** 如果第一个第二个均为0*/if(s.startsWith("0")&&s.trim().length()>1){if (!s.substring(1,2).equals(".")){editText.setText(s.substring(0,1));editText.setSelection(1);return;}}}
使用方法如下:
amount.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {NumberUtil.formatDot(s,amount);}@Overridepublic void afterTextChanged(Editable edt) {String temp = edt.toString();int posDot = temp.indexOf(".");if (posDot <= 0) return;if (temp.length() - posDot - 1 > 2){edt.delete(posDot + 3, posDot + 4);}if (edt.length() >= 1) {btnNext.setEnabled(true);}}});
这篇关于金融支付 输入金额 小数点后两位 ,首位输入小数点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!