Android EditText 對輸入字數和內容範圍進行限製
在做定製機時,對光敏值進行範圍控製時,以及對區號輸入時遇到對輸入字數以及輸入內容的顯示。找了好多方法,終於找到了幾種方法其中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; } } } });
最後更新:2017-04-04 07:03:42