我有一个createEditText
函数可以创建EditText
并将其添加到视图中。我的问题是,一旦将其添加到视图中,用户必须点击EditText
才能调用键盘并进行编辑。我要做的是让它一旦创建EditText
,用户就会自动进入编辑模式。
在IOS编程中,有一个名为becomeFirstResponder()
的函数可以实现这一点。 Android等价物会是什么?
我尝试过的事情:
myEditText.requestFocus()
myEditText.isActivated
myEditText.isFocused
myEditText.isSelected
myEditText.isEnabled
答案 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 />
。