2014-01-30 60 views
2

嗨我困住了一个问题,我似乎无法解决关于TextField for libgdx。我想忽略某些字符,例如在使用“shift”作为大写字符时,不要在文本字段中写入空格。目前我已经写过这样的内容。制作libgdx文本字段会忽略某些字符?

accField.setTextFieldListener(new TextFieldListener() { 

    public void keyTyped(TextField textField, char c) { 

     if (c == 'a') { 
     //Something here that does the replacement maybe?         


     } 


} 

}); 
+0

你见过Textfield.TextfieldFilter吗?这是你想要的? – Springrbua

+0

这看起来很有趣..我怎么才能以一种好的方式实现它? – Lucas

+0

我写了一个答案。希望它可以帮助你。但我从来没有尝试过。请告诉我,如果这是错误的,纠正我,因为我也想用我的游戏过滤器:P – Springrbua

回答

9

我从来没有与TextFieldFilters合作,因为我几乎是新的libgdx。但尽管我明白你使用它们是这样的:

myTextfield.setTextFieldFilter(new TextFieldFilter() { 

    // Accepts all Characters except 'a' 
    public boolean acceptChar(TextField textField, char c) { 
     if (c == 'a') 
       return false; 
     return true; 
    } 
}); 

希望它有帮助。请告诉我它是否可用,因为我想使用此TextFieldFilters来:P

+0

这工作得很好。谢谢:) – Lucas

+0

酷:P现在我知道我可以像这样使用它们:P谢谢:) – Springrbua

+0

正则表达式的工作原理,'Character.toString(c).matches(“^ [a-zA-Z0-9] “)'只有字母数字和数字。 – Madmenyo

-1

您只能将它用于字母数字输入。

myTextfield.setTextFieldFilter(new TextField.TextFieldFilter() { 
      // Accepts all Alphanumeric Characters except 
      public boolean acceptChar(TextField textField, char c) { 
       if (Character.toString(c).matches("^[a-zA-Z]")) { 
        return true; 
       } 
       return false; 
      } 
     });