android 控制EditText字符长度[配置控制 代码控制]
2014-02-18 16:56
357 查看
序:此文章主要概要如何控制EditText字符长度,分别从layout的配置和代码实现两方面说明.以备日后之用,也供大家学习.如有不恰当之处还请大家多多指出[红色 标记处为重点].
一:配置控制
<EditText
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"/>
二:代码控制
一:配置控制
<EditText
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;
/**
* <esEditTxt控件底层实现类>
*
* @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 EditText限制文字长度(中文算3字符,英文算1字符)
- android editText 字符长度限制
- android同时控制EditText输入字符个数和禁止特殊字符输入的方法
- android 监听EditText输入字符长度
- 【Android】安卓开发实战之Java代码中控制EditText插入图片的大小
- android-代码设置editText最大长度
- android如何同时控制EditText输入字符个数和禁止特殊字符输入?
- Android edittext代码设置字符显示或隐藏
- Android EditText 使用InputFilter区分中文英文字符长度
- Android EditText输入限制最大字符长度 和 限制只能输入数字和字母(包含大小写)
- android同时控制EditText输入字符个数和禁止特殊字符输入的方法
- Android EditText限制文字长度(中文算2字符,英文算1字符)
- android EditText获取光标位置并安插字符删除字符
- android实现在Edittext中把部分字符隐藏
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- android EditText控制光标位置删除添加操作
- android 关于EditText中关于输入字数的控制
- android:EditText控制首字母不能输0
- android代码设置EditText只输入数字、字母
- Android实现横屏状态下通过代码弹出EditText并获取焦点弹出软键盘