Android扫描枪(PDA)开发

// 最近在负责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事件**
**缺点**
**当扫描一个字符的时候,无法区分这两个事件**


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值