简单理解
扫码枪 是一个文本输入设备,相当于一个键盘.
扫码枪 有不同的模式 ,可以设置扫描条码之后带出的操作.
一般 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;
}