Очистить Редактировать текст - adb
Как очистить выделенный текст редактирования с помощью команды оболочки.
Я старался
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
При этом я могу удалить только до одного символа, есть ли способ удалить / очистить выделенный текст редактирования.
6 ответов
Это работает для меня:
function clear_input() {
adb shell input keyevent KEYCODE_MOVE_END
adb shell input keyevent --longpress $(printf 'KEYCODE_DEL %.0s' {1..250})
}
Затем:
clear_input
Это выберет все, а затем Backspace.
input keycombination 113 29 && input keyevent 67
Вы можете использовать этот способ:
adb shell input keyevent --longpress 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67
67 — это код KEYCODE_DEL.
Если вы используете uiautomator ( https://github.com/xiaocong/uiautomator), вы можете сделать это:
нажмите виджет EditText, чтобы получить фокус, затем
использование
device(focused=True).clear_text()
чтобы очистить вид, илиdevice(focused=True).set_text("new text")
установить новый текст.
Единственный способ, который я нашел, - это получить правильные координаты input swipe x y x y duration
симулировать долгое нажатие. Затем будет выделен весь текст в поле EditText. Затем вы можете отправить ключи, которые вы хотите заменить, что было там.
Я просто желаю этого adb shell input keyevent KEYCODE_CLEAR
очистит весь текст в поле. Это сделало бы все намного проще, если бы кто-то мог найти лучший способ, который был бы великолепен.
Вероятно, следующее решение выглядит как хак, но оно сработало:
mEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_CLEAR == keyCode) {
mEditText.setText("");
}
return true;
}
});