Editttext не фокусируется с первой попытки - PullRequest
0 голосов
/ 27 марта 2020

Я использую Edittext, чтобы написать код, который пользователь получил на свой номер телефона. Я делаю регистрацию в viewpager2. Когда пользователь вводит свой телефон и пароль и нажимает кнопку «Далее», viewpager2 проведет к следующему фрагменту, где находится мой текст редактирования, и пользователь должен будет написать код в этом тексте редактирования. Но когда пользователь нажимает на текстовый код редактирования, он показывает клавиатуру, но для текста (он должен быть для цифр) и текст редактирования не фокусируется, а текст не печатается. Но когда пользователь щелкнет второй раз по этому тексту редактирования, все будет хорошо - текст редактирования будет в фокусе и будет правая клавиатура.

Но было бы лучше, если бы все было хорошо с первой попытки. Эта проблема имеет несколько edittexts в моем проекте, но не все edittexts.

Вот код редактирования текста в xml:

<EditText
        android:id="@+id/codeEditTextSUSC"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="34dp"
        android:layout_marginEnd="34dp"
        android:layout_marginBottom="35dp"
        android:hint="@string/code"
        android:inputType="numberSigned"
        android:theme="@style/EditTextTheme"
        app:layout_constraintBottom_toTopOf="@+id/sendAgainSUSC"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

И все, что с этим связано:

codeEditTextSUSC.setOnEditorActionListener { v, actionId, event ->
        if (actionId == EditorInfo.IME_ACTION_DONE){
            codeEditTextSUSC.clearFocus()
            hideKeyboard()
        }
        false
    }


codeEditTextSUSC.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable?) {}
        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
            codeErrorTextViewSUSC.visibility = View.INVISIBLE
            if (count != 0) nextButtonSUSC.isEnabled = true
        }
    })

private fun checkCode(): Boolean {
            if (codeEditTextSUSC.text.toString() == "") {
                codeErrorTextViewSUSC.visibility = View.VISIBLE
                shake(codeEditTextSUSC)
                return false
            } else {
                return true
            }
        }

В чем проблема?

...