Android扫描枪(PDA)开发

来源:互联网 发布:电脑淘宝怎么看微淘 编辑:程序博客网 时间:2024/05/17 01:41
// 最近在负责PDA的开发,在扫描事件的处理上,花费了一些时间,但是,最终功夫不负有心人,总算找到一个好点的解决方案,不说了,上代码。    // 该文本框添加扫描事件.    // 但是该扫描事件有一个明显的bug,当扫描出的字符是一个的时候,就无法区分出是扫描事件还是手动输入的事件。    editText.addTextChangedListener(textwatcher);    /**     * 扫描事件.     **/    private MTextWatcher textwatcher = new MTextWatcher();    private class MTextWatcher implements TextWatcher {        @Override        public void onTextChanged(CharSequence s, int start, int before, int count) {            // TODO Auto-generated method stub            /**             * 三个参数的值             * start before count              * 0     0      13 <br>             * 扫描时触发的 :start=0,before=0,count=1 <br>             * 手动输入时,显示的数据 012 023 034 045<br>             * start=0,before=1,count=2,<br>             * start=0,before=2,count=3,<br>             * start=0,before=3,count=4,<br>             * start=0,before=4,count=5,<br>             *  手动通过键盘输入:是每个字母都会触发textWatcher事件 扫描是整体触发,不会单个触发. **             **/            if (start == 0 && before == 0 && count > 1) {                // 当扫描一个字符时,会出错                // 当扫描事件触发的时候,去执行自己的方法.            } else {                // 为手动输入触发的事件.            }        }        @Override        public void beforeTextChanged(CharSequence s, int start, int count, int after) {            // TODO Auto-generated method stub        }    @Override    public void afterTextChanged(Editable s) {    // TODO Auto-generated method stub    }

总结
单个输入是:触发多个TextWatcher事件
PDA扫描是:触发一个TextWatcher事件
缺点
当扫描一个字符的时候,无法区分这两个事件

0 0
原创粉丝点击