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

首頁 > 系統 > Android > 正文

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

2019-12-12 02:47:13
字體:
來源:轉載
供稿:網友

一:要實現這個效果也不是很復雜,只需要設置輸入框輸入的字符類型、設置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("http://.");    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 

主站蜘蛛池模板:
雷波县|
五峰|
志丹县|
花垣县|
华池县|
古蔺县|
冷水江市|
许昌市|
交城县|
武川县|
浮山县|
新民市|
曲沃县|
普兰店市|
平乡县|
洛川县|
蒙山县|
顺昌县|
通化市|
方山县|
石首市|
旅游|
封丘县|
牙克石市|
景谷|
罗城|
泗阳县|
通城县|
无锡市|
淄博市|
蓬溪县|
宁南县|
平邑县|
天峨县|
若尔盖县|
东山县|
乐至县|
铅山县|
宝兴县|
海丰县|
定西市|