所以我有一个包含许多字段的注册屏幕。如果用户单击注册按钮,并且一个或多个字段为空,我想在这些字段上显示错误。
RegistrationActivity:
private void onRegisterButtonClick() {
String name =nameEditText.getText().toString().trim();
String email =emailEditText.getText().toString().trim();
String password =passwordEditText.getText().toString().trim();
String phoneNumber = phoneNumberEditText.getText().toString().trim();
registrationPresenter.register(name, email, password, phoneNumber);
}
private void showEmptyFieldError(){
nameEditText.showError("This field can not be empty");
}
RegistrationPresenter:
public void register(String name, String email, String password, String phoneNumber) {
if (name.isEmpty() || email.isEmpty() || password.isEmpty() || phoneNumber.isEmpty()) {
registrationView.showEmptyFieldError();
}
}
现在不是我想要的实现方法,因为它仅在“名称”字段上显示错误。如何检查字段是否为空,并且以最简单的方式仅对那些字段显示错误?
答案 0 :(得分:2)
使用此功能,您可以在任何字段上显示错误。
private void onRegisterButtonClick() {
String name =nameEditText.getText().toString().trim();
String email =emailEditText.getText().toString().trim();
String password =passwordEditText.getText().toString().trim();
String phoneNumber = phoneNumberEditText.getText().toString().trim();
if (name.isEmpty()) {
nameEditText.setError("Name cannot be empty");
}
if (email.isEmpty()) {
emailEditText.setError("Email cannot be empty");
}
if (password.isEmpty()) {
passwordEditText.setError("Password cannot be empty");
}
if (!name.isEmpty() && !email.isEmpty() && !password.isEmpty()) {
registrationPresenter.register(name, email, password, phoneNumber);
}
}
答案 1 :(得分:0)
基于@Ali Ahmed的答案,您还可以尝试else if
个条件。
private void onRegisterButtonClick() {
String name = nameEditText.getText().toString().trim();
String email = emailEditText.getText().toString().trim();
String password = passwordEditText.getText().toString().trim();
String phoneNumber = phoneNumberEditText.getText().toString().trim();
if (name.isEmpty()) {
nameEditText.setError("Name cannot be empty");
} else if (email.isEmpty()) {
emailEditText.setError("Email cannot be empty");
} else if (password.isEmpty()) {
passwordEditText.setError("Password cannot be empty");
} else {
registrationPresenter.register(name, email, password, phoneNumber);
}
}
因此,如果名称为空,则错误消息将仅显示在名称字段上,在填充名称字段之后,如果电子邮件为空,则错误消息将仅显示在电子邮件上,依此类推...
如果所有字段均已填写,则将执行其他部分。