Android---3种方式限制EditView输入字数(转载)

时间:2022-07-19 10:20:15

方法一:利用TextWatcher

  1. editText.addTextChangedListener(new TextWatcher() {
  2. private CharSequence temp;
  3. private boolean isEdit = true;
  4. private int selectionStart ;
  5. private int selectionEnd ;
  6. @Override
  7. public void beforeTextChanged(CharSequence s, int arg1, int arg2,
  8. int arg3) {
  9. temp = s;
  10. }
  11. @Override
  12. public void onTextChanged(CharSequence s, int arg1, int arg2,
  13. int arg3) {
  14. }
  15. @Override
  16. public void afterTextChanged(Editable s) {
  17. selectionStart = editText.getSelectionStart();
  18. selectionEnd = editText.getSelectionEnd();
  19. Log.i("gongbiao1",""+selectionStart);
  20. if (temp.length() > Constant.TEXT_MAX) {
  21. Toast.makeText(KaguHomeActivity.this,
  22. R.string.edit_content_limit, Toast.LENGTH_SHORT)
  23. .show();
  24. s.delete(selectionStart-1, selectionEnd);
  25. int tempSelection = selectionStart;
  26. editText.setText(s);
  27. editText.setSelection(tempSelection);
  28. }
  29. }
  30. });

方法二:利用InputFilter

  1. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});  //其中100最大输入字数

方法三:在XML中设定

  1. <EditText
  2. .
  3. .
  4. .
  5. android:maxLength="100"
  6. />

从MS平台过来的,有些东西还真是不习惯自己做