android EditText 對輸入字數和內容約制進行限制

來源:互聯網
上載者:User

   在做定製機時,對光敏值進行範圍控制時,以及對區號輸入時遇到對輸入字數以及輸入內容的顯示。找了好多方法,終於找到了幾種方法其中EditText的addTextChangedListener功不可沒。例如對光敏值要在0到61之間。大於61時要在輸入框中自動變為61.代碼如下:

edt.addTextChangedListener(new TextWatcher() {
   String nums = null;

   @Override
   public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

    if (s != null && !s.equals("")) {
     if (numSmall != -1 && numBig != -1) {//最大值和最小值自設
      int a = 0;
      try {
       a = Integer.parseInt(s.toString());
      } catch (NumberFormatException e) {
       // TODO Auto-generated catch block
       a = 0;
      }
      if (a > 61)
       edt.setText("61");
      return;
     }     }
   }

   @Override
   public void beforeTextChanged(CharSequence s, int start, int count,
     int after) {
    // TODO Auto-generated method stub
    /*if (start == 4) {
     nums = s.toString();
    }*/
   }

   @Override
   public void onTextChanged(CharSequence s, int start, int before,
     int count) {
    /*
     * Toast.makeText(getBaseContext(), s + "****" + start + "***" +
     * before, 3000).show();
     */
    if (start > 1) {
     if (numSmall != -1 && numBig != -1) {
      int num = Integer.parseInt(s.toString());
      if (num > 61) {
       s = "61";
      }
      return;
     }     }
   }
  });

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.