按住Android键不断删除EditText的内容

时间:2014-01-08 05:15:17

标签: android android-edittext backspace

当我按下按钮时,如何逐一删除编辑文本的当前文本,并在按住按钮时逐个删除文本。与退格键相似。

发送退格事件不能满足我的需求,因为它仅在键盘处于活动状态时才有效。我没有使用任何键盘。

2 个答案:

答案 0 :(得分:1)

你必须使用计时器。它会不断检查按下的按钮状态。像:

private Timer _timer;

final Button _button = (Button) findViewById(R.id.button1);
final EditText _editText = (EditText) findViewById(R.id.editText1);
_timer = new Timer();
TimerTask _task = new TimerTask() {

@Override
public void run() {
runOnUiThread(new Runnable() {

 @Override
 public void run() {
    Editable _editable = _editText.getText();
    int length = _editable.length();
    _editText.setSelection(length);
    if (_button.isPressed() && length > 0) {
        _editable.delete(length - 1, length);
        }

    }
 });
}
};
_timer.schedule(_task, 0, 60);

只需在onDestroy()方法中取消Timer,例如:

_timer.cancel();

答案 1 :(得分:0)

您可以将BackpaACEKEY事件发送到您的EditText。

以下是您想要的示例Send backspace key event to edit text

修改

手动你可以这样做

  • edittext获取字符串。

  • 删除最后一个索引处的字符。为此,您可以使用subString类的方法String

递归执行此过程,直到您的String变空。