Регистрация пользователя, ограничение по количеству символов

Как ограничить вводимое слово в количестве символов, я сделал регистрацию пользователя но возникла проблема, я могу ничего не вводить и пользователь будет зарегистрирован, для того чтобы такого не было нужно сделать чтобы регистрация происходила только когда введут минимум 5 символов и не больше 15 символов а иначе Toast выводило сообщение "Нужно ввести минимум 5 и максимум 15 символов" и не отправляло данные в БД. Как это сделать?

RgisterActivity.java

public class RgisterActivity extends AppCompatActivity {

    private ActivityRgisterBinding rgisterBinding;
    public EditText regist_name, regist_surname, regist_patronymic, regist_email, regist_phone, regist_password, regist_repassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_rgister);
        rgisterBinding = DataBindingUtil.setContentView(this, R.layout.activity_rgister);

        regist_name = findViewById(R.id.regist_name);
        regist_surname = findViewById(R.id.regist_surname);
        regist_patronymic = findViewById(R.id.regist_patronymic);
        regist_email = findViewById(R.id.regist_email);
        regist_phone = findViewById(R.id.regist_phone);
        regist_password = findViewById(R.id.regist_password);
        regist_repassword = findViewById(R.id.regist_repassword);
        regist_name.setFilters(new InputFilter[]{filter});
        regist_surname.setFilters(new InputFilter[]{filter});
        regist_patronymic.setFilters(new InputFilter[]{filter});
        regist_email.setFilters(new InputFilter[]{filter});
        regist_phone.setFilters(new InputFilter[]{filter});
        regist_password.setFilters(new InputFilter[]{filter});
        regist_repassword.setFilters(new InputFilter[]{filter});
        rgisterBinding.bnRegister.setOnClickListener(view -> {
            performSignUp();
            rgisterBinding.showProgress.setVisibility(View.VISIBLE);
        });
    }

    InputFilter filter = (source, start, end, dest, dstart, dend) -> {
        for (int i = start; i < end; i++) {
            if (Character.isWhitespace(source.charAt(i))) {
                return "";
            }
        }
        return null;
    };

    private void performSignUp() {
        String userName = regist_name.getText().toString();
        String userSurname = regist_surname.getText().toString();
        String userPatronymic = regist_patronymic.getText().toString();
        String userEmail = regist_email.getText().toString();
        String userPhone = regist_phone.getText().toString();
        String userPassword = regist_password.getText().toString();
        String userRepassword = regist_repassword.getText().toString();

        Call<ApiResponse> call = ApiClient.getApiClient().create(ApiInterface.class).performUserSignIn(userName, userSurname,
                userPatronymic, userEmail, userPhone, userPassword, userRepassword);
        call.enqueue(new Callback<ApiResponse>() {
            @Override
            public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response)
            {
                if (response.code() == 200)
                {
                    if (response.body().getStatus().equals("ok"))
                    {
                        if (response.body().getResultCode()==1)
                        {
                            Toast.makeText(RgisterActivity.this, R.string.Registration_completed, Toast.LENGTH_SHORT).show();
                            onBackPressed();
                            finish();
                        } else {
                            displayUserInfo(getString(R.string.User_already_exists));
                            rgisterBinding.registPassword.setText("");
                        }
                    } else {
                        displayUserInfo(getString(R.string.Something_went_wrong));
                        rgisterBinding.registPassword.setText("");
                    }

                } else {
                    displayUserInfo(getString(R.string.Something_went_wrong));
                    rgisterBinding.registPassword.setText("");
                }
            }

            @Override
            public void onFailure(Call<ApiResponse> call, Throwable t) {

            }
        });
    }


    private void displayUserInfo(String message) {
        Snackbar.make(rgisterBinding.myLayout, message, Snackbar.LENGTH_SHORT).show();
        rgisterBinding.registPassword.setText("");
        rgisterBinding.showProgress.setVisibility(View.INVISIBLE);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

}

Ответы (3 шт):

Автор решения: pashssh
if (string.length() > 5 && string.length() < 15) {
            Toast.makeText(this, "Нужно ввести минимум 5 и максимум 15 символов", Toast.LENGTH_SHORT).show();
        }
→ Ссылка
Автор решения: zakiroof

Можно решить так:

private boolean validate(String userName /**тут остальные параметры**/) {
    boolean result = true;
    if(userName.length() < 5 || userName.length() > 15){
        result = false;
    }

    /**Тут проверяете остальные параметры**/

    return result;
}

Вызываете перед отправкой на сервер:

/**performSignUp()**/
...
String userRepassword = regist_repassword.getText().toString();

if(validate(userName /**Тут остальные параметры передаете**/)){
    /**Отправка на сервер**/
}else{
    Toast.makeText(this, "Нужно ввести минимум 5 и максимум 15 символов", Toast.LENGTH_SHORT).show();
}
→ Ссылка
Автор решения: Sergei Buvaka

Можно вообще сделать все более красиво. Вешаете на ваш EditText TextWatcher. И в нем проверяете каждый раз кол-во введенных символов. И только когда этих символов введено достаточно - разблокируете кнопку регистрации:

et1.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

        @Override
        public void afterTextChanged(Editable s) {
            if(s.length() >= 5 && s.length() <= 15) {
                // разблокировать кнопку
            } else if (s.length() < 5) {
                // подсветить где-то надпись, что нужен более длинный логин и заблочить кнопку
            } else {
                // нужен более короткий логин и заблочить кнопку
            }
        }
    });

Таким образом у вас после каждого символа будет производится проверка на то сколько символов ввел пользователь и выдавать нужную подсказку

→ Ссылка