序:此文章主要概要如何控制EditText字符长度,分别从layout的配置和代码实现两方面说明.以备日后之用,也供大家学习.如有不恰当之处还请大家多多指出[红色     标记处为重点].


   一:配置控制

                  android:id="@+id/registrationAuthCode_code_ex"
                android:layout_width="fill_parent"
                android:layout_height="@dimen/dip_height_3"
                android:layout_centerVertical="true"
                android:layout_marginLeft="@dimen/dip_spacing_4"
                android:layout_toLeftOf="@id/ic_delete"
                android:layout_toRightOf="@id/usr_icon_iv"
                android:background="@color/transparent"
                android:contentDescription="@string/regcode_codeet"
                android:hint="@string/registrationauthcode_code_hint"
                android:inputType="number"
                android:maxLength="6"
                android:textColor="@color/primary_black"
                android:textColorHint="@color/second_gray"
                android: textSize="@dimen/sp_size_3"/>

 

  二:代码控制

import android.content.Context; import android.graphics.Color; import android.text.InputFilter; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.widget.EditText; /** * * * @FileName * @author christineRuan * @date 2013-12-6 上午9:10:59 * @version V1.0 <实现:约束控件最大字符值> */ public class ESEditText extends EditText { //private String encoding = "GBK"; private int maxByteLength = 100; //默认100个字符 public ESEditText(Context context,int maxSize) { super(context); this.setTextColor(Color.BLACK); if(maxSize==-1) //未做maxSize配置 { maxSize=maxByteLength; } init(maxSize); } private void init(int maxSize) { maxByteLength=maxSize; setFilters(new InputFilter[] { inputFilter }); //设置输入过滤 } private InputFilter inputFilter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { try { int len = 0; boolean more = false; do { SpannableStringBuilder builder = new SpannableStringBuilder( dest).replace(dstart, dend,source.subSequence(start, end));//len = builder.toString().getBytes(encoding).length; dest).replace(dstart, dend, source.subSequence(start, end)); //len = builder.toString().getBytes(encoding).length; //字节长度 len = builder.toString().length(); //字符长度 more = len > maxByteLength; if (more) { end--; source = source.subSequence(start, end); } } while (more); return source; } catch (Exception e) { return "Exception"; } } }; }

更多相关文章

  1. Android(安卓)Studio下载、安装和配置+SDK+tools下载(无敌超级详
  2. android studio 超长log打印,解决log打印不全问题
  3. 如何在macox下面配置集成ios和android游戏教程
  4. [已解决]eclipse+ADT+Android(安卓)SDK 搭建Android(安卓)开发环境
  5. android studio离线配置gradle
  6. Android(安卓)Span 的使用
  7. Android(安卓)Studio签名配置方法
  8. Android(安卓)获得Url、Uri字符串后面拼接的参数
  9. Flutter环境的搭建

随机推荐

  1. Android中数据解析的实现
  2. 了解android应用开发的更多方面有更好的
  3. 关于解决Andorid的RecyclerView在V7包下
  4. 浅谈Android四大组件之BroadcastReceiver
  5. Android Design Support Library使用详解
  6. android之修改工程名
  7. android 学习方法
  8. android 程序错误全局处理
  9. Android ADB server didn't ACK
  10. 不能直接从eclipse拷贝源码到android系统