さまよえる、Android

Androidのプログラミングで便利なことや残しておきたいことを残しておく。もしオススメのライブラリがあったら教えてくださいね。

AndroidのValidateライブラリ、saripaarを使ってみる。

アノテーションでフォームのチェックができるsaripaar

github.com

インストール

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();
            }
        }
    }
}