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

首頁 > 系統(tǒng) > Android > 正文

EditText限制小數(shù)點(diǎn)前后位數(shù)的實(shí)例

2019-10-23 18:31:20
字體:
供稿:網(wǎng)友

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

public class MyWatcher implements TextWatcher {  private int beforeDot;  private int afterDot;  /**   * 構(gòu)造器   *   * @param beforeDot 小數(shù)點(diǎn)前位數(shù)  不限制輸入-1   * @param afterDot 小數(shù)點(diǎn)后位數(shù)  不限制輸入-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(".");    //直接輸入小數(shù)點(diǎn)的情況    if (posDot == 0) {      editable.insert(0, "0");      return;    }    //連續(xù)輸入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;    }    //不包含小數(shù)點(diǎn) 不限制小數(shù)點(diǎn)前位數(shù)    if (posDot < 0 && beforeDot == -1) {      //do nothing 僅僅為了理解邏輯而已      return;    } else if (posDot < 0 && beforeDot != -1) {      //不包含小數(shù)點(diǎn) 限制小數(shù)點(diǎn)前位數(shù)      if (temp.length() <= beforeDot) {        //do nothing 僅僅為了理解邏輯而已      } else {        editable.delete(beforeDot, beforeDot + 1);      }      return;    }    //如果包含小數(shù)點(diǎn) 限制小數(shù)點(diǎn)后位數(shù)    if (temp.length() - posDot - 1 > afterDot && afterDot != -1) {      editable.delete(posDot + afterDot + 1, posDot + afterDot + 2);//刪除小數(shù)點(diǎn)后多余位數(shù)    }  }}

使用的時(shí)候 如下:

<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));//限制小數(shù)點(diǎn)后最多2位

以上這篇EditText限制小數(shù)點(diǎn)前后位數(shù)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 改则县| 肃宁县| 博湖县| 安顺市| 逊克县| 镇江市| 松原市| 柳河县| 和静县| 东丽区| 台南市| 唐山市| 曲麻莱县| 明水县| 登封市| 绍兴县| 牙克石市| 泉州市| 关岭| 富顺县| 大宁县| 丘北县| 高密市| 天峻县| 澄城县| 锡林浩特市| 莱阳市| 麻江县| 平江县| 水富县| 陇川县| 泸西县| 普兰店市| 保德县| 新乐市| 宜春市| 老河口市| 武汉市| 平南县| 花莲市| 乌兰浩特市|