Android中限制EditText的最大字数

来源:互联网 发布:淘宝达人直播教程 编辑:程序博客网 时间:2024/05/03 22:10

public class EditTextMaxLengthimplements TextWatcher{

private intmaxLen = 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
原创粉丝点击