我正在使用最新的API(CodeScanner和ScanResult)进行条形码扫描,并想询问以下是否可行:
我想打开扫描窗口,扫描产品后会弹出一个对话框窗口,让我选择数量。执行此操作时,扫描窗口必须保持打开状态,因此在输入第一个产品的数量后,我可以扫描下一个产品,依此类推,直到我决定停止扫描。
我现在这样做的方式太慢,导致扫描窗口在第一次扫描后关闭,我必须在输入数量后再次打开它。感谢
答案 0 :(得分:1)
当您尝试扫描时,Codenameone应用程序会打开本机扫描程序,并且在扫描后会对应用程序进行回调。
我建议你做的是在Dialog上放置2个命令,一个将结束扫描过程,另一个将在用户需要时启动新扫描。
Dialog dlg = new Dialog();
dlg.setLayout(new BorderLayout());
TextField txtQuantity = new TextField();
dlg.add(BorderLayout.CENTER, BoxLayout.encloseY(txtQuantity));
dlg.placeButtonCommands(new Command[]{new Command("Continue") {
@Override
public void actionPerformed(ActionEvent evt) {
this.setDisposesDialog(true);
dlg.dispose();
}
}, new Command("Scan new") {
@Override
public void actionPerformed(ActionEvent evt) {
this.setDisposesDialog(true);
//Initiate a new scan here
}
}});
然后在您的扫描回调中,显示此对话框。您可以将其包装在方法中,并在扫描新 actionPerformed中逐步调用此方法。