我通过扩展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应该与设备默认键盘的后退键相同。
有任何想法来处理它吗? 谢谢。