Android 在按住按钮时连续删除EditText的内容

Android 在按住按钮时连续删除EditText的内容,android,android-edittext,backspace,Android,Android Edittext,Backspace,如何在按下按钮时逐个删除编辑文本的当前文本,并在按住按钮时连续逐个删除文本。类似于退格按钮的功能 发送退格事件无法满足我的需要,因为它仅在键盘处于活动状态时才起作用。我不使用任何键盘。您可以向编辑文本发送BACKSPACEKEY事件 这是你想要的样品 编辑 你可以这样做 从edittext获取字符串 删除最后一个索引处的字符。为此,您可以使用String类的方法subString 递归地执行此过程,直到字符串变为空。您必须使用计时器进行此操作。它会连续检查按钮是否按下。比如: private

如何在按下按钮时逐个删除编辑文本的当前文本,并在按住按钮时连续逐个删除文本。类似于退格按钮的功能


发送退格事件无法满足我的需要,因为它仅在键盘处于活动状态时才起作用。我不使用任何键盘。

您可以向编辑文本发送BACKSPACEKEY事件

这是你想要的样品

编辑

你可以这样做

  • edittext
    获取字符串

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


递归地执行此过程,直到字符串变为空。

您必须使用计时器进行此操作。它会连续检查按钮是否按下。比如:

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.cancel();

这只适用于当我集中在编辑文本和键盘显示。。。我在一个自定义拨号应用程序上使用它。所以我为数字创建了自己的按钮,所以我没有使用编辑文本的键盘