AndroidのValidateライブラリ、saripaarを使ってみる。
アノテーションでフォームのチェックができるsaripaar
インストール
compile 'com.mobsandgeeks:android-saripaar:2.0.3'
エラーメッセージの表示を日本語にする方法がわからない。
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.mobsandgeeks.saripaar.ValidationError; import com.mobsandgeeks.saripaar.Validator; import com.mobsandgeeks.saripaar.annotation.ConfirmPassword; import com.mobsandgeeks.saripaar.annotation.Email; import com.mobsandgeeks.saripaar.annotation.NotEmpty; import com.mobsandgeeks.saripaar.annotation.Password; import java.util.List; public class MainActivity extends AppCompatActivity implements Validator.ValidationListener { @NotEmpty @Email public EditText emailEditText; @NotEmpty public EditText nameEditText; @Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC) public EditText passwordEditText; @NotEmpty @ConfirmPassword public EditText confirmPasswordEditText; Validator validator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); validator = new Validator(this); validator.setValidationListener(this); nameEditText = (EditText)findViewById(R.id.name); passwordEditText = (EditText)findViewById(R.id.password); confirmPasswordEditText = (EditText)findViewById(R.id.confirm_password); emailEditText = (EditText)findViewById(R.id.email); Button button = (Button) findViewById(R.id.send); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { validator.validate(); } }); } @Override public void onValidationSucceeded() { Toast.makeText(this, "成功", Toast.LENGTH_SHORT).show(); } @Override public void onValidationFailed(List<ValidationError> errors) { for (ValidationError error : errors) { View view = error.getView(); String message = error.getCollatedErrorMessage(this); if (message.equals("This field is required")) { message = "未入力"; } else if (message.equals("Invalid email")) { message = "メール形式でない"; } else if (message.equals("Invalid password")) { message = "パスワード形式がおかしい"; } else if (message.equals("Passwords don't match")) { message = "パスワードが一致しない"; } else if (message.equals("Invalid email\n" + "This field is required")) { message = "メール形式でない。\n必須入力です。"; } Log.d("エラーメッセージ",message); if (view instanceof EditText) { ((EditText) view).setError(message); } else { Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } } } }