2

我通过扩展 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按钮时,只有一个值被删除。

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

简而言之,BackSpace 应该与设备默认键盘的返回键相同。

有什么想法来处理它吗?谢谢。

4

0 回答 0