【问题标题】:Select EditText programmatically in Android在 Android 中以编程方式选择 EditText
【发布时间】:2013-12-26 16:54:57
【问题描述】:
我是 Android 新手,无法以编程方式选择 EditText。
我的情景。
我有很多EditText,但只有一个是启用的,我称之为A。用户用键盘写在这个EditTextA;当他写完后,启动一个算法来识别A 中的文本并将其放入右侧EditText,例如B。之后我需要清空A 并将焦点设置在它上面,在A 中显示光标并显示键盘。
我会尝试使用myET.requestFocus(),但没有任何反应。
如何让A 再次可编辑,而无需用户触摸A?
谢谢
【问题讨论】:
-
考虑在this 问题中接受的答案。希望对您有所帮助。
标签:
android
focus
android-edittext
【解决方案1】:
试试这个
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
myET.requestFocus();
}
}, 100);
【解决方案2】:
为了在不按下 TextEdit 的情况下显示键盘,您必须将代码放入处理程序中并稍加延迟。它在延迟 200 毫秒时运行良好,但没有任何延迟或仅延迟 1 毫秒就失败了。
(new Handler()).postDelayed(new Runnable() {
public void run() {
youEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0));
youEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0));
}
}, 200);
因此,通过这段代码,您可以模拟对 EditText 的点击。
干杯