简单理解
扫码枪 是一个文本输入设备,相当于一个键盘.
扫码枪 有不同的模式 ,可以设置扫描条码之后带出的操作.
一般 1.可以直接切换到下一个焦点 (输入框)
2.可以带出回车键
3.还有其他很多操作.
这是得力扫码枪的一个文档_http://www.nbdeli.com/images/goods_file0/2017/02/14865619937163.pdf
我使用时,设置成了带出回车键. 效果和手动按enter一样的.这样可以使用android监听enter键的api.
回车键在Android 对应KeyEvent.KEYCODE.ENTER
EditText需要设置 setOnEditorActionListener(TextView.OnEditorActionListener eal ) 它会监听enter事件 扫码枪扫到条码之后 会走到这里.
看一下回调函数TextView.OnEditorActionListener 的 public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
v:getText()可以取出条码的文本和EditText上立刻显示的一样,当然你也可以使用EditText取出来 不过我们可以加工这个字符串 重新设置给EditText.
actionId: 作标识,是跟EditorInfo这里的值对比可以判断执行了什么动作
event: KeyEvent 事件
onEditorAction 这个方法会被多次调用 因为扫码枪也有DOWN事件和UP事件.如果要对文本进行加工最好只在一个事件中操作,否则可能不是你想要的结果.
示例:
/** * 扫码枪 enter 监听 */ EditText etCode; etCode.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) { //扫描到的数据 String s = v.getText().toString().trim(); //拿到数据后做其他操作 } return true; }