代码中设置edittext的长度
来源:互联网 发布:浏览器打开淘宝卡 编辑:程序博客网 时间:2024/06/06 14:25
代码中我们设置最大输入长度的方法:
editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 100 )});
所以可以使用一下方法获得可输入的最大长度:
1. 通过editText.getFilters()获得Filters数组
2. 通过instanceof方法找到类InputFilter.LengthFilter的实例filter
3. 翻看源码:
/**
* This filter will constrain edits not to make the length of the text
* greater than the specified length.
*/
public static class LengthFilter implements InputFilter {
public LengthFilter(int max) {
mMax = max;
}
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
int keep = mMax - (dest.length() - (dend - dstart));
if (keep <= 0) {
return "";
} else if (keep >= end - start) {
return null; // keep original
} else {
keep += start;
if (Character.isHighSurrogate(source.charAt(keep - 1))) {
--keep;
if (keep == start) {
return "";
}
}
return source.subSequence(start, keep);
}
}
private int mMax;
}
可以看到系统没有提供获得mMax的API,所以只用通过反射的方式来会的mMax
至此,最大可输入长度就获得了。
editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 100 )});
所以可以使用一下方法获得可输入的最大长度:
1. 通过editText.getFilters()获得Filters数组
2. 通过instanceof方法找到类InputFilter.LengthFilter的实例filter
3. 翻看源码:
/**
* This filter will constrain edits not to make the length of the text
* greater than the specified length.
*/
public static class LengthFilter implements InputFilter {
public LengthFilter(int max) {
mMax = max;
}
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
int keep = mMax - (dest.length() - (dend - dstart));
if (keep <= 0) {
return "";
} else if (keep >= end - start) {
return null; // keep original
} else {
keep += start;
if (Character.isHighSurrogate(source.charAt(keep - 1))) {
--keep;
if (keep == start) {
return "";
}
}
return source.subSequence(start, keep);
}
}
private int mMax;
}
可以看到系统没有提供获得mMax的API,所以只用通过反射的方式来会的mMax
至此,最大可输入长度就获得了。
0 0
- 代码中设置edittext的长度
- 如何在代码中设置 edittext 的长度.
- 代码设置EditText 长度
- 设置EditText的长度
- edittext设置输入类型、最大长度 在代码中
- EditText文本长度的设置
- android-代码设置editText最大长度
- 代码中设置EditText的密码输入
- EditText在代码中设置最大输入长度并设置为密码输入框
- EditText在代码中设置最大输入长度并设置为密码输入框
- 设置MyEclipse中代码的换行长度
- 设置EditText 长度
- android 代码中设置edittext的inputtype问题
- Android中代码设置EditText的小数位数
- Android中设定EditText的输入长度
- Android中设定EditText的输入长度
- Android中设定EditText的输入长度
- Android中设定EditText的输入长度
- C++ 学习网站
- Hibernate缓存机制详细分析
- Facebook若收购Opera将有助其开拓新用户
- Jackson 框架,轻易转换JSON
- 视频清晰度、色偏以及亮度异常检测
- 代码中设置edittext的长度
- Python一天入门6:函数
- 关于android开发环境中sdk和adt更新到22.6之后多了appcompat_v7
- Delphi中停靠技术的实现[转]
- Could not find a JavaScript runtime
- 萨菲的鬼地方规范化风格
- Node 命令行读取当前目录下的文件(转自《了不起的Node》)
- Activity 加载模式
- Oracle数据类型(转)