限制 EditText 最多輸入兩位小數
為了美觀,先限制一下
android:inputType="numberDecimal"
android:maxLength="9"
1.要求與思路
細節要求:
- 以小數點開頭,前面自動加上 “0”
- 以小數點結尾,去掉小數點
思路:利用 EditText 的輸入監聽實現小數位的擷取,和移動游標到末尾,在失去焦點後,去掉結尾的小數點
2. 解決辦法:新增監聽
新增輸入監聽:
editText.addTextChangedListener(new TextWatcher() {
boolean deleteLastChar;// 是否需要刪除末尾
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().contains(".")) {
// 如果點後面有超過三位數值,則刪掉最後一位
int length = s.length() - s.toString().lastIndexOf("." );
// 說明後面有三位數值
deleteLastChar = length >= 4;
}
}
@Override
public void afterTextChanged(Editable s) {
if (s == null) {
return;
}
if (deleteLastChar) {
// 設定新的擷取的字串
editText.setText(s.toString().substring(0 , s.toString().length() - 1));
// 游標強制到末尾
editText.setSelection(editText.getText().length());
}
// 以小數點開頭,前面自動加上 "0"
if (s.toString().startsWith(".")) {
editText.setText("0" + s);
editText.setSelection(editText.getText().length());
}
}
});
新增失去焦點監聽:
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
EditText editText1 = (EditText) v;
// 以小數點結尾,去掉小數點
if (!hasFocus && editText1.getText() != null && editText1.getText().toString().endsWith(".")) {
editText.setText(editText1.getText().subSequence(0, editText1.getText().length() - 1));
editText.setSelection(editText.getText().length());
}
}
});
相關推薦
限制 EditText 最多輸入兩位小數
為了美觀,先限制一下 android:inputType="numberDecimal" android:maxLength="9" 1.要求與思路 細節要求: 以小數點開頭,前面自動加上
正則限制輸入為數字,且最多輸入2位小數 之 新寫法
符號 接受 fff asc pad 函數 ext www 對象 原本小程序需要一個限制文本框輸入為數字,且最多保留2位小數的效果,網上找到的例子感覺有點繁瑣,就自己寫了一個。 代碼很簡單,主要借助了正則的組匹配特性進行處理: //檢查輸入文本,限制只能為數字並且數字最
Android-EditText兩種方法限制輸入兩位小數
為什麼有這個需求 說實話,這個需求簡直可以說無處不在了,因為,只要有輸入金額的需求,客戶端限制輸入位數幾乎是肯定的。 功能點分析 1.首位輸入.的時候,補全為0. 2.刪除“.”後面超過2位後的資料 3.如果起始位置為0,且第二位跟
限制input只能輸入數字且限制只能輸入兩位小數
chrome中的input不要加type=”number”,有問題,輸入負號擷取到第一個字串是空,就預設text就行 若允許負數加上allowMinus類,正數只加limitNumber 以下可以封裝成函式,加到DOM上的onkeyup=foo(this)
限定EditText只能輸入兩位小數的兩種方式
/** * 限定EditText只能輸入最多兩位小數 * @author Administrator * */ public class MainActivity extends ActionBarActivity { private EditText num_et; private EditT
最多輸入10位整數2位小數的正則表示式
正則表示式的定義共有2種方式:顯示定義和隱式定義。 var myregex = new RegExp("[0-9]"); //顯式定義 var myregex = /[0-9]/; //隱式定義 複雜的正則表示式就是由許多子表示式構成的。此處涉及到正則表達的3個知識點:定位
最多輸入10位整數2位小數的正則表達式
分組 asc 一個 匹配 更多 方式 限定符 image 簡單 正則表達式的定義共有2種方式:顯示定義和隱式定義。 var myregex = new RegExp("[0-9]"); //顯式定義 var myregex = /[0-9]/; //隱式定義
js jquery 限制input輸入框只能輸入兩位小數的數字
//正整數 兩位小數 $('.inputWrap').on('input', function () { var num = $(this).val(); if(n
OC UITextField只允許輸入兩位小數
//只能輸入兩位小數 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { Boolean is
控制輸入框只能輸入兩位小數和一個小數點
在專案中會對輸入框中的輸入值實時控制小數位,限制使用者只能輸入兩位小數,一個小數點.$(obj).bind("input onInput",function(){ var value =
只能讓使用者輸入數字和小數點後最多能輸入兩位。
html<input type="text" id="money" /><span>檢視輸入的值</span>scriptvar str; $("#money").keyup(function() { var reg = /^\d+\.
android中限制EditText最大輸入位元組數
需求:使用者只能在輸入框內輸入15個位元組的字元(15個英文字元或5箇中文字元)瞭解:一個英文字元在Android中佔一個位元組,一箇中文字元在Android中佔3個位元組程式碼public class MainActivity extends AppCompatActivi
iOS 怎樣實現最多保留n位小數
@implementation NSNumber (TwoDecimal) - (NSString *)twoDecimalString { NSNumberFormatter *formatter = [[NSNumberFormatter allo
正則表示式--限制input輸入0~1之間的小數,含0,1,最多兩位小數
一個簡單的正則表示式,工作中可能經常用到,限制字串的輸入、數字的輸入,這些用一個onkeyup就解決了,如:onkeyup="value=value.replace(/[^\d]/g,'') //限制輸入數字 最近有個小需求,限制輸入框輸入費率,要求:只能輸入0-1之間的小
android editText 控制輸入最大值、保留兩位小數、保留小數點前面兩位數
常用方案: 1.在editText的監聽addTextChangedListener中邏輯判斷 2.使用editText的setFilters(new InputFilter[]),設定輸
Android EditText限制小數點輸入兩位
限制輸入小數點兩位 需要對輸入框設定鍵盤型別 inputType:number_decimal bank_card_pay_balance.addTextChangedListener(new TextWatcher() { boolean deleteLastChar;//是否需要刪
ACMNO.14一球從M米高度自由下落,每次落地後返回原高度的一半,再落下。 它在第N次落地時反彈多高?共經過多少米? 保留兩位小數 輸入 M N 輸出 它在第N次落地時反彈多高?共經過多少米
題目描述 一球從M米高度自由下落,每次落地後返回原高度的一半,再落下。 它在第N次落地時反彈多高?共經過多少米? 保留兩位小數 輸入 M N 輸出 它在第N次落地時反彈多高?共經過多少米? 保留兩位小數,空格隔開,放在一行 樣例輸入 1000 5
JS通過正則限制 input 輸入框只能輸入整數、小數(金額或者現金) 兩位小數
第一: 限制只能是整數 ? 1 <input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.t
正則表示式校驗金額最多兩位小數的實數
數字校驗(專案中用於校驗金額的): 任意正整數,正小數(小數位不超過2位) var isNum=/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
Java float保留兩位小數或多位小數
plain ima itl highlight border 十進制 syn 兩位小數 ice 方法1:用Math.round計算,這裏返回的數字格式的. 1 2 3 4 float price=89.89; int itemNum=3; fl