正文  UI设计 > 文本编辑/EditText >

Android editText 输入字数限制

方法一:view plaincopy to clipboardprint?// 输入框限制输入字数 editText.addTextChangedListener(new...

方法一:

view plaincopy to clipboardprint?
// 输入框限制输入字数  
        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);  
                }  
            }  
   
   
        }); 
// 输入框限制输入字数
        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);
                }
            }
 
 
        });

方法二:
利用EditText 可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示

view plaincopy to clipboardprint?
// 输入框限制输入字数  
       InputFilter[] filters = new InputFilter[1];