天天看点

监听pda扫描_android系统PDA扫描枪,扫描完成后自带回车,为什么回车监听第一次不起作用,手动提交一次后才能正常提交...

如题,第一次扫描后,在条码后出现的是回车,而不是绑定的提交按钮的提交功能,手动软键盘提交后,再回到扫描页,再次扫描,就会自动执行提交功能。下面附上源码:privateImageButton...

如题,第一次扫描后,在条码后出现的是回车,而不是绑定的提交按钮的提交功能,手动软键盘提交后,再回到扫描页,再次扫描,就会自动执行提交功能。下面附上源码:

private ImageButton scan_btnsubmit;

private EditText scan_et;

Intent intent = getIntent();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.scan);

scan_btnsubmit = (ImageButton) findViewById(R.id.Scan_Button_login);

scan_et = (EditText) findViewById(R.id.Scan_login);

scan_btnsubmit.setOnClickListener(this);

scan_et.setOnKeyListener(onKey1);

}

OnKeyListener onKey1 = new OnKeyListener() {

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

// keyCode == KeyEvent.KEYCODE_ENTER && event.getAction()

// ==KeyEvent.ACTION_UP

if (keyCode == 66 && event.getAction() == KeyEvent.ACTION_UP) {

System.out.println("扫描完成,调用点击提交按钮");

scan_btnsubmit.performClick();

return true;

}

return false;

}

};

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.Scan_Button_login:

System.out.println("点击了一次提交按钮");

// 处理提交事件

if (scan_et.getText().toString() == null

|| scan_et.getText().toString().replaceAll("\\s|\n",

"").equals("")) {

Toast.makeText(ScanActivity.this, "条码为空,请扫描或手动输入条码!",

Toast.LENGTH_LONG).show();

} else {

System.out.println("跳转页面");

scan_et.setText("");

Intent i = new Intent();

i.setClass(ScanActivity.this, MainManuActivity.class);

startActivity(i);

}

break;

}

可以这样说,第一次扫描,没有自动点击ImageButton,手动提交后,再次来扫描,就自动绑定了ImageButton的点击事件。而且第一次要是点击ImageButton进行提交,再次回来扫描的话,还是提交不上,求高手来解答啦,

软键盘使用的是搜狗,PDA上自带数字键与回车、Tab键,接打电话等键,我怀疑是不是扫描的时候软键盘没有启动的问题。。但我不确定

已测试:用系统自带的ASOP键盘不会出现上述错误,但是我想用搜狗,因为我会在后面的Activity中输入中文,而且用户体验很好,请问有什么办法吗

展开