单击EditText时检查空白空间



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

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

单击时如何验证该用户无法写入他的数据?如果他/她在一个空间中编写数据,则应用程序崩溃,我会收到以下例外。

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

预先感谢。

您可以修剪,但请记住,如果您想限制白色空间,则不限于输入白色空间,然后需要为edit text添加filter。添加filter让您限制要避免的角色。

P.S-检查在给定链接上添加过滤器的添加过滤器如何使用inputfilter限制Android中的deDittext?

将" addTextchangedListener"添加到您的deDittext,然后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
        }
    });

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

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

然后检查文本长度验证:

if(txtEdit.length() == 0)  {
               //your code for what you want to do.
}              

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

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

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

最新更新