我正在尝试编写一个简单的注册应用程序,用户必须填写一些字段,其中一些是强制性的。所以,我需要检查用户是否在那里写信息。我正在这样做:
for(RequireFields r : RequireFields.values()){
if(boolValue()){
switch (r.getField()) {
case "name":
System.out.println("Name");
break;
case "surname":
System.out.println("Surname");
break;
case "pass":
System.out.println("Pass");
break;
case "email":
System.out.println("Email");
break;
case "street":
System.out.println("Street");
break;
case "city":
System.out.println("City");
break;
case "zip":
System.out.println("Zip");
break;
}
}
}
其中boolValue()返回TextUtils.isEmpty(Field)的状态,但这部分我不知道怎么做,RequireFileds暂时是一个枚举:
public enum RequireFields {
NAME("name",1),
SURNAME("surname",2),
EMAIL("email",3),
PASS("pass",4),
CITY("city",5),
STREET("street",6),
ZIP("zip",7);
private final String field;
private final int position;
RequireFields(String field, int position) {
this.field = field;
this.position = position;
}
public String getField() {
return field;
}
public int getPosition() {
return position;
}
}
我在名字上放了一个数字,所以我可以使用迭代。有什么想法或简单的方法吗?
PD:这是我在其他应用程序上使用的两个字段的代码:
ssid.setError(null);
pass.setError(null);
String SSID = ssid.getText().toString();
String PASS = pass.getText().toString();
boolean cancel = false;
View focusView = null;
if (TextUtils.isEmpty(PASS) && !openWifi) {
pass.setError(getString(R.string.error_field_pass));
focusView = pass;
cancel = true;
}
if (TextUtils.isEmpty(SSID)) {
ssid.setError(getString(R.string.error_field_ssid));
focusView = ssid;
cancel = true;
}