方法一:
-
- editText.addTextChangedListener(new TextWatcher() {
- private CharSequence temp;
- private boolean isEdit = true;
- private int selectionStart ;
- private int selectionEnd ;
- @Override
- public void beforeTextChanged(CharSequence s, int arg1, int arg2,
- int arg3) {
- temp = s;
- }
-
- @Override
- public void onTextChanged(CharSequence s, int arg1, int arg2,
- int arg3) {
- }
-
- @Override
- public void afterTextChanged(Editable s) {
- selectionStart = editText.getSelectionStart();
- selectionEnd = editText.getSelectionEnd();
- Log.i("gongbiao1",""+selectionStart);
- if (temp.length() > Constant.TEXT_MAX) {
- Toast.makeText(KaguHomeActivity.this,
- R.string.edit_content_limit, Toast.LENGTH_SHORT)
- .show();
- s.delete(selectionStart-1, selectionEnd);
- int tempSelection = selectionStart;
- editText.setText(s);
- editText.setSelection(tempSelection);
- }
- }
-
-
- });
方法二:
利用EditText 可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示
-
- InputFilter[] filters = new InputFilter[1];
- filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {
- @Override
- public CharSequence filter(CharSequence source, int start, int end,
- Spanned dest, int dstart, int dend) {
- if (source.length() > 0 && dest.length() == Constant.TEXT_MAX) {
- if ((System.currentTimeMillis() - toastTime) > interval) {
- toastTime = System.currentTimeMillis();
- Toast
- .makeText(KaguHomeActivity.this,
- R.string.edit_content_limit,
- Toast.LENGTH_SHORT).show();
- }
- }
- if (dest.toString().equals(
- getResources().getString(R.string.input_default_txt))) {
- Bundle data = new Bundle();
- data.putCharSequence("source", source);
- Message message = textHandler.obtainMessage();
- message.setData(data);
- message.sendToTarget();
- }
-
- return super.filter(source, start, end, dest, dstart, dend);
- }
- };
- editText.setFilters(filters);
- rivate Handler textHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
-
- Bundle data = msg.getData();
- CharSequence source = data.getCharSequence("source");
- editText.setTextColor(Color.BLACK);
- editText.setText(source);
- editText.setSelection(source.length());
- }
- };
阅读(510) | 评论(0) | 转发(0) |