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

首頁 > 系統 > Android > 正文

EditText限制小數點前后位數的實例

2019-12-12 03:05:26
字體:
來源:轉載
供稿:網友

在EditText輸入數字的時候,通常我們需要限制小數點前后位數。比如金額輸入一般我們需要限制小數點后面最多2位。我們可以通過 TextWatcher 實現。

public class MyWatcher implements TextWatcher {  private int beforeDot;  private int afterDot;  /**   * 構造器   *   * @param beforeDot 小數點前位數  不限制輸入-1   * @param afterDot 小數點后位數  不限制輸入-1   */  public MyWatcher(int beforeDot, int afterDot) {    this.beforeDot = beforeDot;    this.afterDot = afterDot;  }  @Override  public void beforeTextChanged(CharSequence s, int start, int count, int after) {  }  @Override  public void onTextChanged(CharSequence s, int start, int before, int count) {  }  @Override  public void afterTextChanged(Editable s) {    judge(s);  }  private void judge(Editable editable) {    String temp = editable.toString();    int posDot = temp.indexOf(".");    //直接輸入小數點的情況    if (posDot == 0) {      editable.insert(0, "0");      return;    }    //連續輸入0    if (temp.equals("00")) {      editable.delete(1, 2);      return;    }    //輸入"08" 等類似情況    if (temp.startsWith("0") && temp.length() > 1 && (posDot == -1 || posDot > 1)) {      editable.delete(0, 1);      return;    }    //不包含小數點 不限制小數點前位數    if (posDot < 0 && beforeDot == -1) {      //do nothing 僅僅為了理解邏輯而已      return;    } else if (posDot < 0 && beforeDot != -1) {      //不包含小數點 限制小數點前位數      if (temp.length() <= beforeDot) {        //do nothing 僅僅為了理解邏輯而已      } else {        editable.delete(beforeDot, beforeDot + 1);      }      return;    }    //如果包含小數點 限制小數點后位數    if (temp.length() - posDot - 1 > afterDot && afterDot != -1) {      editable.delete(posDot + afterDot + 1, posDot + afterDot + 2);//刪除小數點后多余位數    }  }}

使用的時候 如下:

<EditText          android:id="@+id/et_i_want"          android:layout_width="wrap_content"          android:layout_height="25dp"          android:hint="0.00"          android:inputType="numberDecimal"/>etIWant.addTextChangedListener(new MyWatcher(-1, 2));//限制小數點后最多2位

以上這篇EditText限制小數點前后位數的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔区| 金昌市| 浠水县| 茌平县| 云浮市| 蓝山县| 阿瓦提县| 威远县| 科技| 修文县| 偏关县| 三穗县| 宜章县| 缙云县| 五台县| 澄江县| 临湘市| 扶余县| 拉萨市| 广西| 信宜市| 玉树县| 沧源| 怀宁县| 晋江市| 襄樊市| 高雄县| 房山区| 玉田县| 博湖县| 巴中市| 泸定县| 上虞市| 呼伦贝尔市| 木兰县| 阿城市| 思茅市| 延安市| 云安县| 兴义市| 嘉黎县|