Android EditText限制输入字数的方法
作者:nosxcy 时间:2021-11-20 18:39:39
本文实例讲述了Android EditText限制输入字数的方法。分享给大家供大家参考,具体如下:
//新浪微博字数限制
private static final int WEIBO_CONTENT_LENGTH_LIMITED = 140;
//添加微博内容edittext
mInputEditText.addTextChangedListener(mTextWatcher);
private TextWatcher mTextWatcher = new TextWatcher() {
private int editStart;
private int editEnd;
public void afterTextChanged(Editable s) {
editStart = mInputEditText.getSelectionStart();
editEnd = mInputEditText.getSelectionEnd();
// 先去掉 * ,否则会出现栈溢出
mInputEditText.removeTextChangedListener(mTextWatcher);
while (mInputEditText.getText().toString().length() > WEIBO_CONTENT_LENGTH_LIMITED) {
s.delete(editStart - 1, editEnd);
editStart--;
editEnd--;
}
mInputEditText.setText(s);
mInputEditText.setSelection(editStart);
mInputEditText.addTextChangedListener(mTextWatcher);
setPromptContent();
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
};
/**
* refresh prompt content numbers
*/
private void setPromptContent() {
int contentLength = mInputEditText.getText().toString().length();
mInputEditText.setSelection(contentLength);
int limitedLength = WEIBO_CONTENT_LENGTH_LIMITED - contentLength;
String prefix = getResources().getString(R.string.weibo_content_numbers_prefix);
String suffix = getResources().getString(R.string.weibo_content_numbers_suffix);
String promptContentNumbers = prefix + limitedLength + suffix;
SpannableStringBuilder style = new SpannableStringBuilder(promptContentNumbers);
style.setSpan(new ForegroundColorSpan(Color.RED), prefix.length(), promptContentNumbers.length() - suffix.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mPromptContentNumbers.setText(style);
}
希望本文所述对大家Android程序设计有所帮助。
标签:Android,EditText
0
投稿
猜你喜欢
c#定时器使用示例详解
2022-01-09 03:31:05
C#使用Consul集群进行服务注册与发现
2022-10-17 15:29:44
java中方法递归的简单示例
2022-11-25 11:45:12
springboot多模块化整合mybatis,mapper自动注入失败问题及解决
2022-02-20 08:06:29
C#使用随机数编写班级点名器的示例代码
2022-05-26 11:04:51
springboot用controller跳转html页面的实现
2022-08-15 06:57:51
Springboot整合MybatisPlus的实现过程解析
2021-06-14 02:47:06
Java事务管理学习之Spring和Hibernate详解
2023-04-11 00:01:25
Java中四种访问权限资料整理
2021-12-04 13:23:58
Java中的AQS同步队列问题详解
2021-08-16 19:50:23
SpringBoot集成ElasticSearch的示例代码
2023-05-02 05:50:28
java开发之读写txt文件操作的实现
2023-11-17 06:00:23
Java结构型设计模式之享元模式示例详解
2022-05-16 21:41:10
android里TextView加下划线的几种方法总结
2022-03-25 10:42:18
Java日常练习题,每天进步一点点(7)
2023-11-27 00:34:58
executor包执行器功能
2023-07-26 21:07:36
IntelliJ IDEA中查看文件内所有已声明的方法(类似eclipse的outline)
2021-08-06 00:39:39
浅析C# 装箱和拆箱
2022-02-06 17:43:27
Java Idea TranslationPlugin翻译插件使用解析
2023-12-01 10:25:02
MyBatis-plus中的模糊查询解读
2022-06-16 08:27:03