2015-09-07 722 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; 
      } 
     });