【AndroidStudio】EditText に登録する値に制限を設けたい【Java】

##はじめに
画像3枚は私が作った血圧をメモするアプリです。
EditText に入力した値をデータベースに保存しています。
その際、範囲外の値や null を避けたかったのでいろいろ調べ、if文と論理演算子で書きました。
ちなみにですが、このコードだと連続でデータ登録しようとするとアプリが落ちます。
[連続登録落ちについての記事はこちら(私の書いた別記事に飛びます)](https://qiita.com/yukino555/items/e86d9dfcaefb46ee54a3)。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/edf5e123-56fe-a8ce-3cd2-57a82f31d0b2.jpeg" width=30%> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/4ee9ab3a-b37f-670c-45d5-26df3798a1d3.jpeg" width=30%> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705721/c24395aa-f739-e4e2-921f-91107142ca59.jpeg" width=30%>
##サンプルコード
###MainActivity.java
DatePicker と TimePicker、カスタムフォントのコードは省略しています。
[DatePicker、TimePicker 導入で参考にしたブログ](https://akira-watson.com/android/datepicker-timepicker.html)。
[カスタムフォントの記事はこちら(私の書いた別記事に飛びます)](https://qiita.com/yukino555/items/14eb52552a4bd85bc193)。
if文は onClick メソッドの中に書きます。
（コードを載せておいて言うのもあれですが、insertDataメソッドは不安定なコードなのでそっくりそのまま使うことはお控えください）

```java:MainActivity.java
public class MainActivity extends AppCompatActivity {
    EditText getMaxBP;
    EditText getMinBP;
    EditText getPulse;
    Button btEntry;
    Button btNext;
    DatabaseHelper helper;
    SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        helper = new DatabaseHelper(MainActivity.this);
        db = helper.getWritableDatabase();

        btEntry = findViewById(R.id.btEntry);
        btEntry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getMaxBP = findViewById(R.id.etUpperBloodPressure);
                String maxBP = (getMaxBP.getText().toString());
                getMinBP = findViewById(R.id.etLowerBloodPressure);
                String minBP = (getMinBP.getText().toString());
                getPulse = findViewById(R.id.etPulse);
                String pulse = (getPulse.getText().toString());

                String nullMsg = "値を入力してください";
                if(maxBP.length()==0){
                    getMaxBP.setError(nullMsg);
                    return;
                } else if(minBP.length()==0){
                    getMinBP.setError(nullMsg);
                    return;
                } else if(pulse.length()==0){
                    getPulse.setError(nullMsg);
                    return;
                }
                String errorMsg = "この値は入力できません";
                if(!(80 <= Integer.parseInt(maxBP) && Integer.parseInt(maxBP) <= 180)){
                    getMaxBP.setError(errorMsg);
                    return;
                } else if(!(50 <= Integer.parseInt(minBP) && Integer.parseInt(minBP) <= 140)){
                    getMinBP.setError(errorMsg);
                    return;
                } else if(!(40 <= Integer.parseInt(pulse) && Integer.parseInt(pulse) <= 120)){
                    getPulse.setError(errorMsg);
                    return;
                }
                // データベースに値を登録するメソッド
                insertData(db, maxBP, minBP, pulse);
                // 登録に成功したらトーストがでる
                Toast toast = Toast.makeText(BloodPressureAdditionActivity.this, "登録しました", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });
        btNext = findViewById(R.id.btNext);
        btNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, SubActivity.class);
                startActivity(intent);
            }
        });
    }
public void insertData(SQLiteDatabase db, String maxBP, String minBP, String pulse){
        ContentValues values = new ContentValues();
        try {
            values.put("_maxBP", maxBP);
            values.put("_minBP", minBP);
            values.put("_pulse", pulse);
            db.insert("_BPtable", null, values);
        } finally {
            db.close();
    }
}
```
insertDate メソッドの説明ですが、
_maxBP,_minBP,_pulse というカラムに引数の値を渡して insert メソッドで table(ここでは_BPtable) に登録しています。
ContentValues クラスについての説明はこのサイトがわかりやすいと思います。
[Let's プログラミング キーと値を追加](https://www.javadrive.jp/android/sqlite_data/index3.html)
insert と close は SQLiteDatabase のメソッドです。
[デベロッパー：SQLiteDatabase クラス](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase)
##setError
setError を使えば自動的に画像のような赤いビックリマークと黒地白文字テキストのスタイルが出力されます。
二つif文を書きましたが、
一つ目はnull
二つ目は範囲外入力
にそれぞれ対応しています。
参考になれば幸いです。