簡単な登録アプリケーションをプログラムしようとしています。ユーザーはいくつかのフィールドに入力する必要があり、そのうちのいくつかは必須です。したがって、ユーザーがそこに情報を書き込むかどうかを確認する必要があります。私はこれをやっています:
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: これは、他のアプリで使用した 2 つのフィールドのコードです。
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;
}