小编tag*_*mer的帖子

StringTemplate getInstanceOf 返回 null

再会!

我开始使用 StringTemplate 并且遇到了一个非常烦人的问题。我有一个简单的模板“T.st”

T(name, email, passwort) ::= << ... >>
Run Code Online (Sandbox Code Playgroud)

它保存在目录“模板”中,该目录是我的源文件夹“src/main/resources”的一部分。当我执行以下几行时

STGroup group = new STGroupDir("templates");
ST st = group.getInstanceOf("T");
Run Code Online (Sandbox Code Playgroud)

组变量的根字段的值为“jar:file:/D:/path/to/apache-tomcat-8.0.21/wtpwebapps/application/WEB-INF/lib/service.jar!/templates/”

但是 st 将为空,即使 groupdir 显然已被找到,因为它存在于给定的 service.jar 中,并且当我将目录名称更改为不存在的名称时,我会收到一个异常,即该目录不存在。但我不确定为什么我无法获得我的 T 模板的实例。

假设我将我的模板保存在“C:/templates”中并使用它来获取 STGroup 我最终将获得一个有效实例并可以呈现正确的字符串。如果我的模板存储在普通目录(工作)或我的 service.jar 中的目录(不工作)中,为什么会有区别?

问候

java antlr stringtemplate-4

5
推荐指数
0
解决办法
422
查看次数

Android 在到达焦点视图之前处理关键事件

我在 HID 模式下通过蓝牙将外部条码扫描仪连接到我的平板电脑,并尝试处理我的应用程序中的输入。条码扫描器基本上像键盘一样工作。

我有一个简单的 gui,在我的主要活动中,我有以下方法:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    System.out.println(keyCode + " - " + (char) event.getUnicodeChar());
    return true;
}
Run Code Online (Sandbox Code Playgroud)

问题:

当我打开一个文本应用程序,比如谷歌笔记并扫描任何代码时,条形码被插入,然后是一个新行。这让我觉得我可以处理关键事件并将所有字符写入字符串构建器,直到我到达“Enter”的关键事件。

但问题是,当我在我的应用程序中使用扫描仪(此条形码)时,上述方法的输出如下:

59 - ?? <- 'Shift'
29 -
59 - ??
47 - s
62 -
8 - 1
9 - 2
10 - 3

事件中无法捕获条形码末尾的“Enter”(应该是 keyCode 66),但我的 GUI 中的元素之一被突出显示,这意味着扫描仪必须发送“Enter”

当我将多行 EditText 添加到我的 GUI 并在元素聚焦时扫描相同的条形码时,输出如下:

29 - a
47 - s
62 -
8 - 1
9 - 2
10 - 3 …

java android bluetooth hid barcode-scanner

1
推荐指数
1
解决办法
2616
查看次数