你好,我有一个应用程序,我通过条形码扫描仪获得了条目。我使用Zebra TC56作为测试设备。
我需要向用户显示警告消息,这就是我有自定义对话框的原因。 当用户收到错误时,将显示对话框。我的对话框的图片可以在这里看到:
红色部分下方是一个按钮,单击按钮时,对话框将关闭,用户将关闭最新屏幕。
一切正常,但有一些我不想要的东西。当用户扫描条形码(输入数据)时,按钮被按下并且对话框关闭。
我只想通过单击屏幕上的按钮(TAMAM)来关闭对话框。但是当我扫描任何东西时,对话框都会关闭。
以下是对话框类的代码:
public class ViewDialog {
public void showDialog(Activity activity, String msg){
final Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(R.layout.customdialog);
TextView text = (TextView) dialog.findViewById(R.id.text_dialog);
text.setText(msg);
Button dialogButton = (Button) dialog.findViewById(R.id.btn_dialog);
dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
我试图把焦点放在除了按钮(TAMAM)之外的某个地方,但它没有帮助。如果有人知道如何从条形码扫描仪中解除输入密钥,我真的需要一些帮助,我们将不胜感激。 (我已将设备设置为发送Enter键,因为我需要在其他屏幕中)
答案 0 :(得分:0)
我能想到的几乎没有办法做到这一点。
首先,我假设您正在使用DataWedge自动将回车键附加到扫描数据,您可以动态切换到不发送回车键但使用SWITCH_PROFILE API以其他方式相同的配置文件:{{3 }}。这假设您仍然需要能够在对话框可见时进行扫描,如果您希望完全禁用扫描,则可以使用SCANNER_INPUT_PLUGIN API:http://techdocs.zebra.com/datawedge/6-3/guide/api/switchtoprofile/。
其次,您可以使用EMDK配置文件API更改KeyStroke输出插件(http://techdocs.zebra.com/datawedge/6-3/guide/api/scannerinputplugin/)的参数,然后应用新修改的配置文件。我自己从未尝试过,但它应该可行 - 请查看以下示例,了解其背后的原则:http://techdocs.zebra.com/emdk-for-android/6-3/mx/data-capture/keystroke/#keystrokeoutput
第三,您可以将Java SDK用于扫描程序,从而更好地控制扫描程序的行为(http://techdocs.zebra.com/emdk-for-android/6-3/samples/data-capture/)