序:此文章主要概要如何控制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"; } } }; }
- Android(安卓)Studio下载、安装和配置+SDK+tools下载(无敌超级详
- android studio 超长log打印,解决log打印不全问题
- 如何在macox下面配置集成ios和android游戏教程
- [已解决]eclipse+ADT+Android(安卓)SDK 搭建Android(安卓)开发环境
- android studio离线配置gradle
- Android(安卓)Span 的使用
- Android(安卓)Studio签名配置方法
- Android(安卓)获得Url、Uri字符串后面拼接的参数
- Flutter环境的搭建
随机推荐
-
Android中数据解析的实现
-
了解android应用开发的更多方面有更好的
-
关于解决Andorid的RecyclerView在V7包下
-
浅谈Android四大组件之BroadcastReceiver
-
Android Design Support Library使用详解
-
android之修改工程名
-
android 学习方法
-
android 程序错误全局处理
-
Android ADB server didn't ACK
-
不能直接从eclipse拷贝源码到android系统