方法一:利用TextWatcher
editText.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
private boolean isEdit = true;
private int selectionStart ;
private int selectionEnd ;
@Override
public void beforeTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
temp = s;
}
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable s) {
selectionStart = editText.getSelectionStart();
selectionEnd = editText.getSelectionEnd();
Log.i("gongbiao1",""+selectionStart);
if (temp.length() > Constant.TEXT_MAX) {
Toast.makeText(KaguHomeActivity.this,
R.string.edit_content_limit, Toast.LENGTH_SHORT)
.show();
s.delete(selectionStart-1, selectionEnd);
int tempSelection = selectionStart;
editText.setText(s);
editText.setSelection(tempSelection);
}
}
});
private TextWatcher mTextWatcher = new TextWatcher(){
Toast mToast = null;
public void beforeTextChanged(CharSequence s, int start,
int count,int after) {
}
public void onTextChanged(CharSequence s, int start,
int before,int count) {
}
public void afterTextChanged(Editable s) {
int nSelStart = 0;
int nSelEnd = 0;
boolean nOverMaxLength = false;
nSelStart = mEditText.getSelectionStart();
nSelEnd = mEditText.getSelectionEnd();
nOverMaxLength = (s.length() > Constants.MAX_TEXT_INPUT_LENGTH) ? true : false;
if(nOverMaxLength){
if(null == mToast){
mToast = Toast.makeText(mContext,
R.string.IDS_MSG_TEXT_OVER_MAXLENGTH,
Toast.LENGTH_SHORT);
}
mToast.show();
s.delete(nSelStart - 1, nSelEnd);
mEditText.setTextKeepState(s);//请读者注意这一行,保持光标原先的位置,而 mEditText.setText(s)会让光标跑到最前面,
//就算是再加mEditText.setSelection(nSelStart)也不起作用
}
}
};
方法二:利用InputFilter
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)}); //其中100最大输入字数
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)}); //其中100最大输入字数
方法三:在XML中设定
Xml代码
<EditText
.
.
.
Android:maxLength="100"
/>
=========================================================
方法二:
利用EditText可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示
// 输入框限制输入字数
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source.length() > 0 && dest.length() == Constant.TEXT_MAX) {
if ((System.currentTimeMillis() - toastTime) > interval) {
toastTime = System.currentTimeMillis();
Toast
.makeText(KaguHomeActivity.this,
R.string.edit_content_limit,
Toast.LENGTH_SHORT).show();
}
}
if (dest.toString().equals(
getResources().getString(R.string.input_default_txt))) {
Bundle data = new Bundle();
data.putCharSequence("source", source);
Message message = textHandler.obtainMessage();
message.setData(data);
message.sendToTarget();
}
return super.filter(source, start, end, dest, dstart, dend);
}
};
editText.setFilters(filters);
private Handler textHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle data = msg.getData();
CharSequence source = data.getCharSequence("source");
editText.setTextColor(Color.BLACK);
editText.setText(source);
editText.setSelection(source.length());
}
};
=============================================================
分享到:
相关推荐
Android限制只能输入中文的EditText,对输入的内容进行监听拦截。
注释详细,使用过滤器可以将输入框中的内容进行限定,适合初学者,可以直接运行,增加新功能页很方便
自己做的一个自定义控件,里面主要是自定以弹出框,对edittext的回调处理和edittext输入时自动千分位分隔和金额限制
下拉框格式的editView,用editView实现下拉框效果
android充值demo 自定义editview自定义radiobutton
实现在EditView里输入表情的效果,虽然界面比较粗糙,但相当好用!
android自定义组合控件
综合button,menu,textview,editview,Spinner等,应用多种界面布局格式,适合初学者
挺好用的一个editview ,自动验证 手机号,邮箱,身份证号。
平时在做Android开发过程中经常要用到EditText,有时候可能需要监听你在TextView中输入的字数的状态和变化,以便于我们能做相应的提示和操作。我们可以通过下面的方式来实现。 class EditChangedListener ...
EditView类继承自TextView类,EditView与TextView最大的不同就是用户可以对EditView控件进行编辑,同时还可以为EditView控件设置监听器,用来判断用户的输入是否合法。 以下为EditView常用属性及对应方法说明 您...
输入一个固定的配对码,一般扫码枪说明书里都有写。配对完成后,显示设备已连接。就ok。 2.AndroidManifest中配置权限 android项目中的AndroidManifest.xml文件添加蓝牙权限。 <uses-permission android
editview聚焦的时候,会自动弹出软键盘。这个小demo实现,打开界面自动弹出软键盘,点击非软键盘区域后,软键盘自动收起。
EditView_1-源码.rar
代码为EditText悬浮文字提示的实例代码,有问题请博客留言:http://blog.csdn.net/seven2729/article/details/48655807
自定义View之双表头表格(表头不动,EditView和TextView两种方式)
android:phoneNumber设置为电话号码的输入方式。 android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。 android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现...
android:textSize android:hint android:inputType android:minLines android:maxLines app:tetv_editing - Initial state of ToggleEditTextView app:tetv_textViewColor - Text color of TextView app:tetv_...
在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息
我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在...