以编程方式单击 EditText
programically click EditText
我想在按下按钮后以编程方式单击 editText。
When a radio button "pitot_area" is selected, I want the editText associated with this selection to be programmatically clicked, so the user has one less "click" on the screen and it happens automatically.
到目前为止我已经试过了
performClick()
callOnClick()
requestFocus()
我希望此代码所在的区域如下:
root.pitot_area.setOnClickListener {
setAreaLabels(root)
evNodeItem.kvParams = false
evNodeItem.PitotRectArea = false
evNodeItem.PitotRoundArea = false
evNodeItem.areaParams = true
root.area_edit_text.requestFocus()
我试过的另一种方法是
root.area_edit_text.setFocusableInTouchMode(true);
root.area_edit_text.setFocusable(true);
root.area_edit_text.requestFocus();
对于上面的代码行,我在 .xml 文件中为 editText
android:focusable="false"
android:focusedByDefault="false"
没有显示错误并且构建了代码,似乎这段代码没有在 kotlin 中读取?有没有人对如何做到这一点有任何想法?谢谢!
编辑
我查看了下面建议的 -> Focus Edit Text Programmatically (Kotlin) 问题,但无法为我的代码实现它。
要将焦点直接设置到 EditText,您必须在将焦点设置到 EditText 后打开键盘。
将此行写入您的按钮点击:
对于Activity:
button.setOnClickListener {
editText.isFocusableInTouchMode = true
editText.requestFocus()
val inputMethodManager: InputMethodManager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInputFromWindow(llMainView.applicationWindowToken, InputMethodManager.SHOW_FORCED, 0)
}
对于片段:
button.setOnClickListener {
editText.isFocusableInTouchMode = true
editText.requestFocus()
val inputMethodManager: InputMethodManager = activity!!.getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInputFromWindow(llMainView.applicationWindowToken, InputMethodManager.SHOW_FORCED, 0)
}
我想在按下按钮后以编程方式单击 editText。 When a radio button "pitot_area" is selected, I want the editText associated with this selection to be programmatically clicked, so the user has one less "click" on the screen and it happens automatically.
到目前为止我已经试过了
performClick()
callOnClick()
requestFocus()
我希望此代码所在的区域如下:
root.pitot_area.setOnClickListener {
setAreaLabels(root)
evNodeItem.kvParams = false
evNodeItem.PitotRectArea = false
evNodeItem.PitotRoundArea = false
evNodeItem.areaParams = true
root.area_edit_text.requestFocus()
我试过的另一种方法是
root.area_edit_text.setFocusableInTouchMode(true);
root.area_edit_text.setFocusable(true);
root.area_edit_text.requestFocus();
对于上面的代码行,我在 .xml 文件中为 editText
android:focusable="false"
android:focusedByDefault="false"
没有显示错误并且构建了代码,似乎这段代码没有在 kotlin 中读取?有没有人对如何做到这一点有任何想法?谢谢!
编辑 我查看了下面建议的 -> Focus Edit Text Programmatically (Kotlin) 问题,但无法为我的代码实现它。
要将焦点直接设置到 EditText,您必须在将焦点设置到 EditText 后打开键盘。
将此行写入您的按钮点击:
对于Activity:
button.setOnClickListener {
editText.isFocusableInTouchMode = true
editText.requestFocus()
val inputMethodManager: InputMethodManager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInputFromWindow(llMainView.applicationWindowToken, InputMethodManager.SHOW_FORCED, 0)
}
对于片段:
button.setOnClickListener {
editText.isFocusableInTouchMode = true
editText.requestFocus()
val inputMethodManager: InputMethodManager = activity!!.getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInputFromWindow(llMainView.applicationWindowToken, InputMethodManager.SHOW_FORCED, 0)
}