2015-09-07 727 views
4

如何使用shell命令清除重点编辑文本。清除编辑文本 - 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 

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

+0

尝试使用'亚行外壳输入文本''' –

+0

命令的无效参数:te xt,甚至如果我让它运行,它会在已经输入的文本中添加新的空间。 – Krishnakant

+0

我无法找到任何可以清除整个edittext数据的命令。 –

回答

0

到目前为止,我发现的唯一方法是获得正确的坐标,以使用input swipe x y x y duration来模拟长按。这将突出显示EditText字段中的所有文本。然后您可以发送您想要替换的密钥。

我只希望adb shell input keyevent KEYCODE_CLEAR将清除该字段中的所有文本。如果有人能找到更好的方式,那会让事情变得更容易。

1

如果使用uiautomator(https://github.com/xiaocong/uiautomator),你可以通过这样做:

  1. 水龙头的EditText小部件获得焦点,然后

  2. 使用device(focused=True).clear_text()清除视图,或者通过device(focused=True).set_text("new text")到设置一个新的文本。

4

这个工作对我来说:

function android_clear_input { 
    adb shell input keyevent KEYCODE_MOVE_END 

    for i in $(seq 50); do 
     adb shell input keyevent KEYCODE_DEL 
    done 
} 

然后:

android_clear_input 
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; 
      } 
     });