检查EditText值

时间:2015-04-21 12:10:17

标签: java android

我正在尝试这样做,用户正在注册,而对于密码字段,我不想拥有两个密码字段(如传统密码,另一个是确认密码)我想只有一个edittext以及第一次输入密码和松散焦点后,下面的代码是不言自明的

passwordSgnup_et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                    @Override
                    public void onFocusChange(View v, boolean hasFocus) {
                        if(!hasFocus ) {
                            if (i <= 0) {
                                passwordSgnup_et.requestFocus();
                                cfmPasswordSgnup = Password;
                                passwordSgnup_et.getText().clear();
                                passwordSgnup_et.setHint("Confirm Password");
                                if (passwordSgnup_et.getText().toString() .equals( cfmPasswordSgnup)) {
                                    ParseUser userSignup = new ParseUser();
                                    userSignup.setUsername(Name);
                                    userSignup.setEmail(Email);
                                    userSignup.setPassword(Password);
                                    userSignup.put("Nickname",nickName);

我面临的问题是这个。如何输入确认密码并与第一次输入的密码匹配。我很困惑。同样要在确认密码与第一个密码匹配后退出,我正在使用好的旧的int i&lt; = 0逻辑来改善这个?

编辑: 这个问题作为副本被关闭只是指另一个等于问题,我的问题是,在逻辑中你可以看到,

passwordSgnup_et.setHint("Confirm Password");
                                    if (passwordSgnup_et.getText().toString() .equals( cfmPasswordSgnup)) {

在这两行之间我需要输入userinput(confirmmpassword)来实际与第一个密码进行比较,这就是我无法得到它。

2 个答案:

答案 0 :(得分:1)

一个解决方法只使用一个edittext

String password = null;
edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        //First time edittext will be with default initialization so no tag will be set so u can check 
        if (!hasFocus){
            if (v.getTag() == null){
                //you require to put validations you want
                password = edittext.getText().toString();
                v.setTag("c");
                v.setText("");
                v.setHint("Confirm Password");
                v.requestFocus();
            }else if (((String)v.getTag()).equals("c"){
                //It is now confirm password field lost focus
            }
        }
    }
});

除此之外你还可以实现textwatcher,在afterTextChanged中你可以检查

if (((String)v.getTag()).equals("c") {
   // So user has completed entering confirm password so you can put a check. 
}

我没有测试过这段代码,因此可能会遇到一些代码级问题/警告,需要在实际实现中修复。

答案 1 :(得分:0)

我认为你想使用TextWatcher

TextView.addTextWatcher(...)

有回调可以获取有关输入何时完成的信息。 并查看OnFocusChangeListener界面!