Android验证:在EditText中显示即时错误的setError或Toast

时间:2014-03-18 07:40:44

标签: android validation

我只是想知道在输入数值后我是否可以setErrorToast EditText

例如:

预订ID(TextView _ __ _ ____ EditText

现在,预订ID的值应该是5(不多或少)

所以,我已经这样声明了:

if (s6.length()<=4) 
                {
                    bookid.setError( "Enter Booking ID!" );
                    bookid.requestFocus(s6.length());

                }

这里s6代表EditText

我希望一旦输入错误的值(小于5)就会显示错误。

有这样的方式吗?谢谢。

3 个答案:

答案 0 :(得分:1)

您可以在EditText中添加文本观察器界面,并在onTextChanged(..)中执行您想要的操作:

YourEditText.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start,
                        int before, int count) {
                    if(s.length()!=5) {
                        Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
                    }
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start,
                        int count, int after) {

                }

                @Override
                public void afterTextChanged(Editable s) {

                }
            });

答案 1 :(得分:1)

要在EditText上实现验证机制,您应该查看TextWatcher接口。您可以创建一个实现TextWatcher的类,然后将其分配给您的Edittext。通过这种方式,您可以访问editText中的任何值。

答案 2 :(得分:0)

if (s6.length()==5) 
{
// do what you wanna do....
}
else
{
bookid.setError( "Enter Booking ID!" );
bookid.requestFocus(s6.length());
}