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