为KEYCODE_DEL删除大量文本而不是单个

时间:2017-07-11 11:01:45

标签: android keyevent keycode android-input-method input-method-kit

我通过扩展InputMethodService类将InputMethodService用于我的贴纸键盘android应用程序,如下所示:

    public class ImageKeyboard extends InputMethodService {
     ...
    }

键盘布局是在我的.java文件中动态创建的。

键盘上有一个退格按钮,我已使用 KEYCODE_DEL 成功实现了如下所示:

btnDelete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sendDownAndUpKeyEvent(KeyEvent.KEYCODE_DEL, 1);
        }
    });

以下是您可以检查的 sendDownAndUpKeyEvent()方法:

public void sendDownAndUpKeyEvent(int keyEventCode, int flags) {
    sendDownKeyEvent(keyEventCode, flags);
    sendUpKeyEvent(keyEventCode, flags);
}

内部方法如下:

public void sendDownKeyEvent(int keyEventCode, int flags) {
    mInputConnection.sendKeyEvent(
            new KeyEvent(
                    SystemClock.uptimeMillis(),
                    SystemClock.uptimeMillis(),
                    KeyEvent.ACTION_DOWN,
                    keyEventCode,
                    0,
                    flags
            )
    );
}

public void sendUpKeyEvent(int keyEventCode, int flags) {
    mInputConnection.sendKeyEvent(
            new KeyEvent(
                    SystemClock.uptimeMillis(),
                    SystemClock.uptimeMillis(),
                    KeyEvent.ACTION_UP,
                    keyEventCode,
                    0,
                    flags
            )
    );
}

现在,由于我在 btnDelete 上点击了监听器,每次按 btnDelete 按钮时,只会删除单个值。

当用户按下按钮时我也必须擦除值,即必须同时擦除多个值。

InShort,BackSpace应该与设备默认键盘的后退键相同。

有任何想法来处理它吗? 谢谢。

0 个答案:

没有答案