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控件相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)

    做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的. 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件,然后初始化该控件并对该控件添加文本监听.xml自己简单的设计一下,代码较为简单,直接上代码: package com.example.edittext; import android.app.Activity; import android.os.Bundle; import an

  • Android EditText限制输入字符类型的方法总结

    Android EditText限制输入字符类型的方法总结 前言: 最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1.第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置.假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中 Android:inputType="textPassword" 在java文件中,可以用 myEditText.setInputType(InputType.TY

  • Android编程中EditText限制文字输入的方法

    本文实例讲述了Android编程中EditText限制文字输入的方法.分享给大家供大家参考,具体如下: Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入一些非法字符等,这些需求有些可以使用android控件属性直接写在布局xml文件里,比如android:numeric="integer"(只允许输入数字): 对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误提示),做成

  • EditText限制输入数字,精确到小数点后1位的设置方法

    在EditText的布局文件里面设置: android:inputType="numberDecimal" 在代码中: /** 输入框小数的位数*/ private static final int DECIMAL_DIGITS = 1; InputFilter lengthfilter = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned de

  • EditText实现输入限制和校验功能实例代码

    一.方法 1)输入限制 1.通过android:digits限制只能输入小写abc android:digits="abc" 2.通过android:inputType限制只能输入数字 android:inputType="number" 在android:inputType中可以设置各种限制,比如邮箱地址等等 2)校验 直接通过代码实现 String s=et_verify_empty.getText().toString(); if(s==null||s.len

  • Android EditText限制输入字数的方法

    本文实例讲述了Android EditText限制输入字数的方法.分享给大家供大家参考,具体如下: //新浪微博字数限制 private static final int WEIBO_CONTENT_LENGTH_LIMITED = 140; //添加微博内容edittext mInputEditText.addTextChangedListener(mTextWatcher); private TextWatcher mTextWatcher = new TextWatcher() { pri

  • Android EditText限制输入字符的方法总结

     Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文.   现在总结一下EditText的各种实现方式,  以比较各种方法的优劣.  第一种方式:  设置EditText的inputType属性,可以通过xml或者Java文件来设置.假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中,   Android:inputType="textPassword" 在java文件中,可以用 ev.setInputType(I

  • Android EditText实现输入表情

    一.简介 editText是TextView的子类,TextView能用的工具EditText都能用,这里就是editText利用SpannableString的ImageSpan实现输入表情的功能 类结构图: 二.方法 1)EditText利用SpannableString的ImageSpan实现添加表情的方法 第一步:创建SpannableString对象spannableString SpannableString spannableString=new SpannableString("

  • JavaScript动态提示输入框输入字数的方法

    本文实例讲述了JavaScript动态提示输入框输入字数的方法.分享给大家供大家参考.具体如下: 在QQ空间里有小纸条那么一个功能,随着你在文本框中输入多少字,上面会动态提示你"已经输入多少字"和"还可以输入多少字",觉得挺好的,所以自己也试着做做,呵呵.   开始,我想很多人第一感觉就是通过js的 onkeydown或者onkeyup来做,中发现还可以用focus + setInterval() +blur来达到我们需要的效果,于是很快的我利用这种方法自己粗糙的写

  • js判断文本框剩余可输入字数的方法

    本文实例讲述了js判断文本框剩余可输入字数的方法.分享给大家供大家参考.具体如下: 目的:为了更直观的体现用户在文本框输入文本时能看到自己输入了多少字,项目中需要通过判断提示文本框剩余可输入字数 JS实现方法 复制代码 代码如下: <html>  <head runat="server">      <title></title>      <script type="text/javascript"> 

  • Android EditText限制输入整数和小数的位数的方法示例

    直接上代码 新建DecimalInputTextWatcher类继承TextWatcher (代码可直接复制使用) import android.text.Editable; import android.text.InputFilter; import android.text.TextWatcher; import android.widget.EditText; /** * EditText 限制输入整数和小数 的位数 * 默认 整数位无限制,小数位 最多2位 */ public clas

  • Android EditText实现输入金额类型详解

    前言 众所周知,Android中的editText默认的属性里面是没有金额类型的,所以要实现这个功能我们就必须自己动手丰衣足食.下面话不多说了,来一起看看详细的介绍吧. 一.EditText只允许输入数字.小数点. 首先要知道金额有两部分构成,整数部分和小数部分,要实现只输入数字和小数点很简单.自己查能很容易查到. 把type设置成InputType.TYPE_NUMBER_FLAG_DECIMAL|InputType.TYPE_CLASS_NUMBER 就行 那这样做有个缺点,小数部分可以有很

  • vue3使用vueup/vue-quill富文本、并限制输入字数的方法处理

    目录 一.效果展示 二.npm 三.main.js引入 四.页面使用 五.总结问题(简单记录一下笨方法处理的) vue3中使用富文本实在是踩了太多坑了,大概记录一下笨方法处理,有好的方法多交流 一.效果展示 二.npm npm install @vueup/vue-quill@alpha --save 三.main.js引入 import { QuillEditor } from '@vueup/vue-quill' import '@vueup/vue-quill/dist/vue-quill

  • jquery实现限制textarea输入字数的方法

    jquery怎么实现限制textarea输入的字数呢?有需要的朋友可以参考一下我写的例子,当然如果有误,也希望大家能及时指出来,大家共同学习进步. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>textarea 限制字数</title> <style> .container{ positio

随机推荐