How to change the focus to next edit text in android?

后端 未结 9 1673
南笙
南笙 2020-12-03 01:03

\"enter

The User can enter only one digit in the edit text. if he enters the value in

9条回答
  •  春和景丽
    2020-12-03 01:53

    My kotlin solution for this

    private fun addEditTextListener(editText: EditText?, nextEditText: EditText?) {
        editText?.setOnFocusChangeListener { view, focused ->
            if (focused) {
                editText.text = null
            }
        }
        editText?.addTextChangedListener {
            if (it.toString().isNotEmpty()) {
                if (nextEditText != null) {
                    nextEditText.requestFocus()
                } else {
                    viewModel.confirmCode(
                        binding?.digit1?.text?.toString(),
                        binding?.digit2?.text?.toString(),
                        binding?.digit3?.text?.toString(),
                        binding?.digit4?.text?.toString(),
                    )
                }
            }
    
        }
    }
    

    And setting the listeners

     override fun setupViews() {
        addEditTextListener(binding?.digit1, binding?.digit2)
        addEditTextListener(binding?.digit2, binding?.digit3)
        addEditTextListener(binding?.digit3, binding?.digit4)
        addEditTextListener(binding?.digit4, null)
    }
    

提交回复
热议问题