Android EditText限制输入字数的方法
作者:nosxcy 发布时间:2021-11-20 18:39:39
标签:Android,EditText
本文实例讲述了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程序设计有所帮助。


猜你喜欢
- 问答小剧场 以下会产生信息丢失的类型转换是( ) A.float a=10;
- 布局布局效果如下,下面每个“网格”都是一个按钮,点击按钮,就会有相应的事件发生。由于UniformG
- 最近,项目上涉及到了图像压缩,发现原有的图像压缩功能,虽然保证了图像的大小300K以内,但是压缩后的图像看的不在清晰,并且,限定了图片的He
- Android Fragment实现底部通知栏,供大家参考,具体内容如下截图如下:1. 第一步先要创建fragment(动态注册)然后将两个
- API:即Application programming Interface,应用编程接口。Java中封装了许许多多的API供用户使用,Sc
- 导读导读 | 12月总体来说互联网的技术圈是非常热闹的,chatGPT爆火,SpringBoot3.0发布等重磅陆消息续进入大家的视线,而本
- 本文实例为大家分享了WebView实现文件下载功能的具体代码,供大家参考,具体内容如下本节引言本节给大家介绍的是WebView下载文件的知识
- Android Studio生成的APP默认图标是经典的机器人图标。可以通过Android Studio实现APP图标和名称的修改。1 修改
- TCP实现TCP协议需要在双方之间建立连接,通过输入输出流来进行数据的交换,建立需要通过三次握手,断开需要四次挥手,保证了数据的完整性,但传
- Java Hibernate对象
- /// <summary> /// 为图片生成缩略图 /// </summ
- 本文实例讲述了JavaWeb 网上书店 注册和登陆功能。分享给大家供大家参考,具体如下:工具:Eclipse + Navicat源码地址:h
- char 字符char代表一个Unicode字符,它是System.Char的别名char someChar = 'a';/
- 前言:最近涉及到和QQ打交道,定义所有的好友一共只能有300条消息,如果一次性从数据库读取300条或者更多,界面会有细微的卡顿.所以考虑了下
- Mapper类中存在名称相同的方法重载报错项目场景官网项目开发问题描述Mapper类中存在名称相同的方法重载报错为了省事,直接在mapper
- java 创建线程Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Threa
- 使用Java的NIO写的一个小的聊天系统,供大家参考,具体内容如下一、服务端/** * 群聊的服端 * * @author :breakpo
- 问题:Kotlin升级引起的类找不到情况[其实跟Kotlin版本无关]java.lang.NoClassDefFoundError: Fai
- 本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家: )1. Intent简
- 废话不多说,直接上代码,小伙伴们仔细看 * 释吧。/*简单的复制 剪切 粘贴 功能 操作: &nb