首页 > 解决方案 > 调用 EditText 的 onClick 事件,当单击它所在的布局内部时

问题描述

我编写了一个由线性布局、一个 TextView、一个 EditBox 和另一个 TextView 组成的自定义布局。我想要做的是,当我单击布局上的任意位置(可能是编辑框或文本视图)时,调用 EditText 的 onClick 事件。我可以通过设置布局的 onClickListener 来关注它。

    val customLayout: LinearLayout = findViewById(R.id.custom_layout)
    customLayout.setOnClickListener {
            val editBox : EditBox = findViewById(R.id.edit_box)
            editBox.requestFocus()
        }

但我似乎无法让它显示键盘,以及光标下方的标记。有没有办法做到这一点?

标签: javaandroid-studiokotlin

解决方案


您实际上并不想要它OnClickListener,您只想将焦点设置在该字段上并显示键盘。文档有一个示例函数,您可以使用

fun showSoftKeyboard(view: View) {
    if (view.requestFocus()) {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
    }
}

只需调用它并通过您的editBox


推荐阅读