java - libGDX scene2d TextFieldListener 在 Android 上未接收 DELETE 键

标签 java android textfield libgdx

我无法在我的 TextField(libgdx 中的 scene2d ui 元素)监听器中注册 android“删除”键。这是我定义文本字段的代码:

    nameTextfield = new TextField("", skin);
    nameTextfield.setMessageText("Some Text");

    uiStage.addActor(nameTextfield);

我尝试这个监听器只是为了解码 DELETE 键的键码:

    nameTextfield.setTextFieldListener(new TextFieldListener() {
        public void keyTyped (TextField textField, char key) {
            textField.setText(String.valueOf(Integer.valueOf(key)));

        }
    });

虽然它提供了几乎所有按钮的代码,但它甚至对“删除”按钮没有反应。

我在 Nexus 7 上对此进行了测试。

最佳答案

来自TextField.java source看起来“DELETE”(以及“BACKSPACE”、“TAB”和其他几个键)是由 TextField 专门处理的。这些 key 永远不会转发给任何监听器。

内置处理程序应该做“正确的事情”(修剪字符串内容中的字符)。

删除对于您的情况是否在某种程度上表现不正确,导致您尝试对其进行解码?

关于java - libGDX scene2d TextFieldListener 在 Android 上未接收 DELETE 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430064/

相关文章:

java - 无法在两行中创建两个 TextView

android - 将 EditText/TextView 置于 MapView Android 之上

java - Array<Vector2> 如何定义它?

java - 如何在 Eclipse 中将多行语句的两个制表符缩进减少到一个制表符?

java - invalidate() 在空对象引用上

java - 按字符串长度降序对字符串列表进行排序,不会更改列表

android - 如何在 phonegap android 中启用多点触控手势?

flutter - 错误 : The argument type '(int) → dynamic' can't be assigned to the parameter type '(String) → void'

textfield - LibreOffice 编写器字段计算

flutter - 让 TextField 只接受数字和 + 符号