복합 디자인 패턴을 사용하여 Android의 등록 양식을 검증하는 방법을 설명해주십시오. 이 양식에는 8 개의 EditText 필드 (Ussername, Password, Password re-enter, 도시, 성별, 나이, 전화 번호, 이메일)가 있습니다. 난 이미 내 친구가이 복합 디자인 패턴을 사용하여 수행 할 수 있다는 얘기이 코드복합 패턴을 사용한 유효성 확인
public boolean validateInput() {
boolean validated = true;
if (mUserValues.getCity() == null || mUserValues.getCity().isEmpty()) {
mCityEditText.setError(getString(R.string.error));
validated = false;
}
if (mUserValues.getEmail() == null || mUserValues.getEmail().isEmpty()) {
Log.d("mEmail", "in mEmail");
mEmail.setError(getString(R.string.error));
validated = false;
}
if (mUserValues.getPassword() == null
|| mUserValues.getPassword().isEmpty()) {
mPasswordEditText.setError(getString(R.string.error));
validated = false;
}
if (mUserValues.getPasswordCheck() == null
|| mUserValues.getPasswordCheck().isEmpty()) {
mPasswordConfirm.setError(getString(R.string.error));
validated = false;
}
if (mUserValues.getPassword() != null
&& mUserValues.getPasswordCheck() != null
&& !mPasswordEditText.getText().toString()
.equals(mPasswordEditText.getText().toString())) {
mPasswordEditText.setError(getString(R.string.pass_check));
mPasswordConfirm.setError(getString(R.string.pass_check));
validated = false;
}
if (mUserValues.getSex() == null || mUserValues.getSex().isEmpty()) {
mSex.setError(getString(R.string.error));
validated = false;
}
if (mUserValues.getPhoneNumber() == 0) {
mPhone.setError(getString(R.string.error));
validated = false;
}
Pattern pattern = Pattern.compile(Constants.EMAIL_PATTERN);
Matcher matcher = pattern.matcher(mEmail.getText().toString());
mEmailCheck = matcher.matches();
if (mEmailCheck == false) {
mEmail.setError(getString(R.string.email_valid));
validated = false;
}
if (mUserValues.getUsername().length() <= 2) {
mUsername.setError(getString(R.string.username_check));
validated = false;
}
if ((mUserValues.getAge() < 18 || mUserValues.getAge() > 150)
&& mUserValues.getAge() > 0) {
mAge.setError(getString(R.string.age_check));
validated = false;
}
return validated;
}
를 사용하여 검증했다,하지만 난 정말이 할 수있는 방법을 이해하지 않습니다. 누군가 설명 할 수 있다면 정말 고마워 할 것입니다. 미리 감사드립니다.
패턴은 훌륭하지만 패턴이 이미 작동하고 있으며 패턴을 사용할 필요가없는 경우 사용하지 마십시오. "내 친구는"당신의 프로그램을 바꿀 이유가 아니라고 말합니다. 이제 런타임에이 양식을 변경하거나 동적으로 만들 수 있도록하려는 경우 복합 패턴을 사용하여 처리해야하는 정당한 이유가 있습니다. – Karakuri