Java 使用检查EditText值

Java 使用检查EditText值,java,android,Java,Android,我正在尝试这样做,用户正在注册,对于密码字段,我不想有两个密码字段(像传统的密码,另一个是确认密码),我只想有一个edittext,当第一次输入密码并没有焦点时,下面的代码是不言自明的 passwordSgnup_et.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View

我正在尝试这样做,用户正在注册,对于密码字段,我不想有两个密码字段(像传统的密码,另一个是确认密码),我只想有一个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);

在这两行之间,我需要输入userinput(confirmpassword)以实际与第一个密码进行比较,这是我无法获得的。

我认为您需要使用
文本观察程序

TextView.addTextWatcher(...)
有回调来获取输入完成时的相关信息。
还可以查看
onfocuschangeelistener
界面

一种解决方法,以仅包含一个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. 
}

我没有测试此代码,因此它可能有一些代码级别的问题/警告,您需要在实际实现中加以解决。

使用
equals
而不是
=
来比较字符串值
.equals()
来比较对象<代码>=
对于原始数据类型@ρ∑ρѕρєK,这个问题远不止一个简单的等式。。。你得到问题了吗???@JackyBoi:好的,请用
equals
方法更新你的代码你的问题不是很清楚。您希望清除密码字段并要求用户重新键入(确认密码),然后检查两个密码是否匹配,对吗?这有点接近,但我面临另一个问题,因为当我失去焦点时,我无法将焦点恢复到密码。
if (((String)v.getTag()).equals("c") {
   // So user has completed entering confirm password so you can put a check. 
}