方法一:
// 输入框限制输入字数
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 on TextChanged(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 da ta = new Bundle();
da ta.putCharSequence("source", source);
Message message = textHandler.obtainMessage();
message.setData(da ta);
message.sendToTarget();
}

return super.filter(source, start, end, dest, dstart, dend);
}
};
editText.setFilters(filters);
private Handler textHandler = new Handler() {
@Override
public void handleMessage(Message msg) {

Bundle da ta = msg.getData();
CharSequence source = da ta.getCharSequence("source");
editText.setTextColor(Color.BLACK);
editText.setText(source);
editText.setSelection(source.length());
}
};

更多相关文章

  1. Android(Java):onChange效果实现
  2. android dialog 显示时弹出输入法
  3. Android(安卓)输入事件一撸到底之源头活水(1)
  4. Android(安卓)27+ 限制App所有未加密的http连接
  5. Solution of issue: Android(安卓)soft keyboard overlap with i
  6. android EditText的自动换行和对Enter键的改变
  7. 华为发布全新IDE:DevCro Studio,Facebook正自研OS系统!去除Google安
  8. Android(安卓)如何在自定义界面上启用输入法 (How to enable inp
  9. Android(安卓)事件全局监听(二)需要root权限 ,使用getevent监听Andr

随机推荐

  1. 自定义进度条,progressBar 背景为.9图片
  2. Vuforia的Samples详细解析(Android)
  3. Android的layout_weight属性释疑(全面讲解
  4. 实战技巧:用Enum(枚举类型)取代整数集
  5. ubuntu10.04 android编译问题
  6. Android(安卓)8.0 奥利奥现已推出!
  7. Activity之间使用intent传递大量数据带来
  8. Android——application全局类的使用
  9. [教程] Android修改源代码控制永不锁屏
  10. android studio 3.0 创建kotlin