单击EditText时检查空格

时间:2014-02-03 13:02:04

标签: android android-edittext

我有一个自定义的EditText类,发生的事情是该字段已经有一个验证,检查它的长度并进行修剪。

但是,应用程序崩溃了,因为可以在字段中单击并在1个空格后插入数据。

如何在点击时验证该用户无法写入他的数据?如果他/她用一个空格写数据,应用程序崩溃,我收到以下异常。

java.lang.IllegalArgumentException: Start position must be less than the actual text length

提前致谢。

4 个答案:

答案 0 :(得分:1)

要么修剪,要记住这不会限制用户输入空格,如果要限制空格,则需要为filter添加edit text。添加filter可以限制您想要避免的任何字符。

P.S - 检查在给定链接How do I use InputFilter to limit characters in an EditText in Android?

上添加过滤器

答案 1 :(得分:1)

将“addTextChangedListener”添加到EditText然后onTextChanged,您可以检查您的验证。例如,

txtEdit.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            String str = s.toString();
            if(str.length() > 0 && str.startsWith(" ")){
                Log.v("","Cannot begin with space");
                txtEdit.setText("");
            }else{
                Log.v("","Doesn't contain space, good to go!");
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

答案 2 :(得分:0)

修剪从编辑文本中获得的字符串。

   String str=edtext.getText().toString().trim();


if(str!=null && !str.equalsIgnoreCase("")))
{
//perform your operations. 
}
else
{
//give error message.
}

答案 3 :(得分:0)

首先以这种方式获取编辑文本:

EditText name=(EditText) findViewById(R.id.txt);
String txtEdit=txt.getEditableText().toString();

然后通过以下方式检查文本长度验证:

if(txtEdit.length() == 0)  {

               //your code for what you want to do.

}