以编程方式对焦编辑文本(Kotlin)

时间:2018-06-07 14:13:00

标签: android kotlin android-edittext

我有一个createEditText函数可以创建EditText并将其添加到视图中。我的问题是,一旦将其添加到视图中,用户必须点击EditText才能调用键盘并进行编辑。我要做的是让它一旦创建EditText,用户就会自动进入编辑模式。

在IOS编程中,有一个名为becomeFirstResponder()的函数可以实现这一点。 Android等价物会是什么?

我尝试过的事情:

myEditText.requestFocus()
myEditText.isActivated
myEditText.isFocused
myEditText.isSelected
myEditText.isEnabled

3 个答案:

答案 0 :(得分:1)

不幸的是仅仅呼叫EditText#requestFocus是不够的。除此之外,您还必须致电InputMethodManager#showSoftInput。以下实用方法应该有效:

fun openSoftKeyboard(context: Context, view: View) {
    view.requestFocus()
    // open the soft keyboard
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
}

答案 1 :(得分:1)

这只是一个想法(一些伪代码只是为了澄清事情):

myEditText.requestFocus()
(activity or dialog).window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

如果连接了硬件键盘,则必须注意不显示软键盘

答案 2 :(得分:0)

在您的EditText视图中,在布局的xml文件中添加<requestFocus />