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