我是Android新手,我无法以编程方式选择EditText
。
我的情景。
我有很多EditText
,但只有一个是启用的,我会称之为A
。用户使用键盘在此EditText
A
中写入;当他完成写作时,启动一个识别A
内文本的算法并将其放在右侧EditText
中,例如B
。在此之后,我需要清空A
并设置焦点,将光标显示在A
内并显示键盘。
我会尝试myET.requestFocus()
,但没有任何反应。
如果用户不必触摸A
,我怎样才能再次A
进行编辑?
由于
答案 0 :(得分:3)
为了在不按下TextEdit的情况下显示键盘,您必须将代码放在处理程序中并有一些延迟。它在200ms延迟时工作良好,但没有任何延迟或仅延迟1ms就失败了。
(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上的点击。 干杯
答案 1 :(得分:3)
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
myET.requestFocus();
}
}, 100);
试试这个