当我跳过edittext字段(例如:name)时,我想显示名称字段为空的错误消息

时间:2016-05-13 08:25:10

标签: android

当我跳过EditText字段(例如:name)时,我想显示错误消息,如" name字段为空"。这是我的代码,

    public void onClick(View v) {
        String userName=username.getText().toString();
        String passWord=password.getText().toString();
        if (userName.equals("")){
            username.setError("Username Required");
        }
        else if(passWord.isEmpty()){
            password.setError("Password Required");
        }
        else{
            Toast.makeText(Login.this, "Success", Toast.LENGTH_SHORT).show();
        }

    }

请帮帮我。

3 个答案:

答案 0 :(得分:1)

点击按钮,您可以检查编辑文本为空或不显示错误

public void onClick(View v) {
            String userName=username.getText().toString();
            String passWord=password.getText().toString();
            if (userName.equals("")){
                username.setError("name field is empty");
            }
            else if(passWord.isEmpty()){
                password.setError("Password Required");
            }
            else{
                Toast.makeText(Login.this, "Success", Toast.LENGTH_SHORT).show();
            }

        }

答案 1 :(得分:0)

尝试使用 setOnFocusChangeListener()

UserName.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {

            String userName=username.getText().toString();
                if (userName.equals("")){
                username.setError("name field is empty");
                username.requestFocus();
                }
            }
        }
    });

    Password.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {

            String passWord=password.getText().toString();
                if(passWord.equals("")){
                password.setError("Password Required");
                password.requestFocus();
                }
            }
        }
    });

答案 2 :(得分:0)

假设您正在尝试检查有效的用户名,然后在EditText的文本更改事件上,您可以使用此代码。

edit_name.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}

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

            @Override
            public void afterTextChanged(Editable s) {
                Is_Valid_Person_Name(edit_name);

            }
        });

这很简单,并且会在您正在填写的editText旁边显示红色错误,正如您在此网站上看到的那样

  public void Is_Valid_Person_Name(EditText edt) throws NumberFormatException {
        if (edt.getText().toString().length() <= 0) {
            edt.setError("Accept Alphabets Only.");
                name = null;
        } else if (!edt.getText().toString().matches("[a-zA-Z ]+")) {
            edt.setError("Accept Alphabets Only.");
            name = null;
        } else {
            name = edt.getText().toString();
            edt.setError(null);
        }

        }

您可以采用类似的方式应用其他验证。