如何使用shell命令清除焦点编辑文本。
我试过
adb shell input keyevent KEYCODE_CLEAR // Not worked
adb shell input keyevent KEYCODE_DEL // Delete only one char
adb shell input keyevent KEYCODE_FORWARD_DEL // Not worked
有了这个我只能删除一个字符,有没有办法可以删除/清除焦点编辑文本。
答案 0 :(得分:4)
这对我有用:
function clear_input() {
adb shell input keyevent KEYCODE_MOVE_END
adb shell input keyevent --longpress $(printf 'KEYCODE_DEL %.0s' {1..250})
}
然后:
clear_input
答案 1 :(得分:1)
如果您使用uiautomator(https://github.com/xiaocong/uiautomator),您可以通过以下方式执行此操作:
点击EditText小部件以获得焦点,然后
使用device(focused=True).clear_text()
清除视图,或device(focused=True).set_text("new text")
设置新文字。
答案 2 :(得分:0)
到目前为止,我找到的唯一方法是获得正确的坐标以使用input swipe x y x y duration
来模拟长按。然后,这将突出显示EditText字段中的所有文本。然后,您可以发送要替换的密钥。
我只希望adb shell input keyevent KEYCODE_CLEAR
清除该字段中的所有文字。如果有人能找到更好的方式,这将使事情变得如此简单。
答案 3 :(得分:0)
可能下一个解决方案看起来像是一个黑客,但它起作用了:
mEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_CLEAR == keyCode) {
mEditText.setText("");
}
return true;
}
});