Android中限制EditText的最大字数

public class EditTextMaxLength implements TextWatcher{

private int maxLen = 0;  

    private EditText editText = null;  

    private Context context;

      

    public EditTextMaxLength(int maxLen, EditText editText,Context context) {  

        this.maxLen = maxLen;  

        this.editText = editText;

        this.context = context;

    }  

@Override

public void afterTextChanged(Editable arg0) {

// TODO Auto-generated method stub

Util.showXgtLog("------------afterTextChanged");

}

@Override

public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,

int arg3) {

// TODO Auto-generated method stub

Util.showXgtLog("------------beforeTextChanged");

}


@Override

public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

Util.showXgtLog("------------onTextChanged");


        Editable editable = editText.getText();  

        int len = editable.length();  

Util.showXgtLog("------------len------"+len);

Util.showXgtLog("------------maxLen-----"+maxLen);


        if(len > maxLen)  

        {  

            int selEndIndex = Selection.getSelectionEnd(editable);  

            String str = editable.toString(); 

    Util.showXgtLog("------------str-----"+str);


            //截取新字符串  

            String newStr = str.substring(0,maxLen);  

            editText.setText(newStr);  

            editable = editText.getText();  

              

            //新字符串的长度  

            int newLen = editable.length();  

            //旧光标位置超过字符串长度  

            if(selEndIndex > newLen)  

            {  

                selEndIndex = editable.length();

                maxLenLimit(maxLen);

                Util.showXgtLog("大小-----"+selEndIndex+"");

                Util.showXgtLog("最大-----"+maxLen+"");

            }  

            //设置新光标所在的位置  

            Selection.setSelection(editable, selEndIndex);  

              

        }  

}

//判断字数不能超过最大字数

private void maxLenLimit(int wordNum){

Util.showShortToast(context, "字数不能超过"+wordNum+"字");

}


}



他的调用

在oncreat()中设置edittext的监听

设置最大字数不超过50字

signNameEditT.addTextChangedListener(new EditTextMaxLength(50,signNameEditT,this));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值