我想实现一些代码来对常见的快捷键做出React,比如在Chrome操作系统环境中的Ctrl + S(保存),Ctrl + Z(撤销)。
我在Activity中添加了以下代码:
@Override
public boolean dispatchKeyShortcutEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_O) {
openFile(); // Ctrl+O, Shift+O, Alt+O
return true;
} else if(event.getKeyCode() == KeyEvent.KEYCODE_Z) {
if (event.isCtrlPressed()) {
undoLastAction();
return true;
}
}
return super.dispatchKeyShortcutEvent(event);
}
我已经将Window.Callback
添加到活动中:
public class ScMain extends AppCompatActivity implements View.OnClickListener,
FragmentManager.OnBackStackChangedListener, Window.Callback {
Android Studio将显示以下消息:
- ComponentActivity.dispatchKeyShortcutEvent只能从相同的库组前缀中调用(引用groupId=androidx.core,前缀androidx来自groupId=[my app])*
尽管代码编译时没有错误,但dispatchKeyShortcutEvent
方法永远不会被调用。
我找不到我应该在Gradle文件中添加哪个依赖项。或者我需要额外的代码吗?
1条答案
按热度按时间x4shl7ld1#
我通过使用
onKeyShortcut
解决了这个问题