国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android金額輸入框只允許輸入小數點后兩位效果

2019-10-23 18:27:38
字體:
來源:轉載
供稿:網友

一:要實現這個效果也不是很復雜,只需要設置輸入框輸入的字符類型、設置InputFilter、設置輸入變化監聽即可。下面直接來看代碼吧….

二:new 一個class extends AppCompatEditText并寫上一個初始化函數

private void init() {  //設置輸入框允許輸入的類型(正則)  //對應的布局屬性是--->android:digits="0123456789."  setKeyListener(DigitsKeyListener.getInstance("0123456789."));  //設置輸入字符  setFilters(new InputFilter[]{inputFilter});  addTextChangedListener(this);}

三:inputFilter來分割小數后的保留位數

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];      // 2 表示輸入框的小數位數      int diff = dotValue.length() + 1 - 2;      if (diff > 0) {        return source.subSequence(start, end - diff);      }    }    return null;  }};

如果你想保留其它位數的小數,只需要把上面的2改成你需要的位數即可。

三:輸入框輸入變化的監聽,來處理小數點不能出現在第一位&&不能出現多個

@Overridepublic 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;}

就這幾步就可以輕松實現了,想看源碼的點擊這里哦源碼鏈接

以上所述是小編給大家介紹的Android金額輸入框只允許輸入小數點后兩位效果,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东宁县| 南汇区| 静海县| 柏乡县| 莲花县| 扎赉特旗| 屏边| 会宁县| 同江市| 方城县| 且末县| 武城县| 张家界市| 铅山县| 洞口县| 台山市| 尖扎县| 新泰市| 阳朔县| 交口县| 北海市| 浪卡子县| 泊头市| 清水县| 崇文区| 达日县| 湛江市| 尚义县| 佛学| 五寨县| 浦东新区| 正镶白旗| 福安市| 辽阳县| 阿城市| 通化县| 方山县| 青阳县| 宁津县| 天门市| 菏泽市|