java - 调用 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()
}
但我似乎无法让它显示键盘,以及光标下方的标记。有没有办法做到这一点?
解决方案
您实际上并不想要它OnClickListener
,您只想将焦点设置在该字段上并显示键盘。文档有一个示例函数,您可以使用
fun showSoftKeyboard(view: View) {
if (view.requestFocus()) {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
}
}
只需调用它并通过您的editBox
推荐阅读
- azure - 是否有 Powershell/Azure-CLI 甚至是门户选项来复制公式以在 Azure 中创建 VM?
- mysql - 将连接数组传递给laravel中的查询
- arrays - 如何有效地将 unsigned char* 传递给 C++/CLI 中的托管方法?
- laravel-5 - 从 laravel 将用户添加到 phpbb3 论坛用户表
- postgresql - 创建表时出错:“@”处或附近的语法错误
- java - 在 java servlet 中设置多种内容类型
- python - Twitter api 流不是将推文作为推文对象传递,而是作为字符串传递
- python-2.7 - 如何使用点群制作复杂的形状......比如椅子、火箭等等,使用 pygame 和 numpy
- javascript - 为什么使用缓冲区转换日期格式比使用字符串操作慢?
- windows - 如何通过 CMD 在 Windows 上仅删除用户路径中的某些值