清除编辑文字 - adb

时间:2015-09-07 07:31:43

标签: android adb android-framework android-shell

如何使用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

有了这个我只能删除一个字符,有没有办法可以删除/清除焦点编辑文本。

4 个答案:

答案 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),您可以通过以下方式执行此操作:

  1. 点击EditText小部件以获得焦点,然后

  2. 使用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;
            }
        });