来自 onPress 的自定义键盘 primaryCode 始终为零

Custom keyboard primaryCode from onPress is always zero

这是我的问题。我有一个自定义键盘,我正在动态地向其添加键,但是每当我尝试捕捉被按下的键时,我都没有捕捉到任何有用的东西。唯一被触发的回调是 onPress 并且它应该将键 primaryCode 作为参数。问题是即使我在创建密钥时尝试更改它,这个主值始终为 0。如何获取 primaryCode 以反映按下的键的主代码?

这是我的 keyboard.xml

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="25%p"
    android:keyHeight="10%p">
</Keyboard>

这是我生成键盘按键的地方,效果很好。我的键盘看起来完全符合预期。

  Keyboard.Row row = new Row(this);
  for (int i = 0; i < labels.size(); i++) {

    Keyboard.Key key = new Keyboard.Key(row);

    key.label = labels.get(i);
    key.text = labels.get(i);
    key.codes = new int[] { 'c' };
    key.width = keyWidth;
    key.height = keyHeight;
    this.getKeys().add(key);
  }

然后我在我的片段中注册了监听器。

 keyboardView.setOnKeyboardActionListener(this);

问题是我的 keyboard.xml 文件中没有存根行和键。添加它们后问题就解决了。