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
  • asp之家 软件编程 m.aspxhome.com