Невозможно проверить Edittext с inputType "телефон", если ноль в Android

android

81 просмотра

2 ответа

Я пытаюсь проверить, ввел ли пользователь свой номер мобильного телефона в EditText в событии нажатия кнопки, но я не могу проверить, является ли EditText пустым или нет, когда элемент управления переходит в « editRegMobile ». Когда я нажимаю на кнопку, она не показывает сообщение в тосте. Я также хочу проверить формат номера мобильного телефона, т.е. код страны "+91 999999999". Я могу проверить другой EditText, но не для Mobile EditText.

XML-код:

<EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="phone"
            android:ems="10"
            android:id="@+id/editRegMobile"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/sign_in_up_textbox"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginBottom="35dp"
            android:textSize="16sp"
            android:letterSpacing="0.08"
            android:singleLine="true" />

Java-код:

btnSignUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editRegName != null && TextUtils.isEmpty(editRegName.getText().toString().trim())) {
                    editRegName.setError("Required!");
                    editRegName.requestFocus();
                } else if (editRegEmail != null && TextUtils.isEmpty(editRegEmail.getText().toString())) {
                    editRegEmail.setError("Required!");
                    editRegEmail.requestFocus();
                } else if (!(editRegEmail != null && TextUtils.isEmpty(editRegEmail.getText().toString()))) {
                    if (!Patterns.EMAIL_ADDRESS.matcher(editRegEmail.getText().toString()).matches()) {
                        editRegEmail.setError("Invalid Format!");
                        editRegEmail.requestFocus();
                    }
                } else if ((editRegMobile != null) && TextUtils.isEmpty(editRegMobile.getText().toString())) {
                    Toast.makeText(getApplicationContext(), "Please enter mobile number!", Toast.LENGTH_SHORT).show();
                } else if (!(editRegMobile != null && TextUtils.isEmpty(editRegMobile.getText().toString()))) {
                    if (!Patterns.PHONE.matcher(editRegMobile.getText().toString()).matches()) {
                        Toast.makeText(getApplicationContext(), "Please enter valid mobile number!", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
Автор: Arang Источник Размещён: 08.11.2019 11:22

Ответы (2)


0 плюса

Решение

Ты можешь сделать

if(editRegMobile.getText().length() == 0)

Или же

editRegMobile.getText().toString().length()

Второй способ требует некоторой производительности, потому что сначала нужно преобразовать в строку

Автор: Martin Sch Размещён: 20.08.2016 01:46

0 плюса

Просто проверить на пустое:

edittext.getText().toString().length() == 0
Автор: Parth Anjaria Размещён: 20.08.2016 01:45
Вопросы из категории :
32x32