Android EditText 用法及焦点处理总结
笔者最经最近在做一个项目,主要是在Android平板上处理扫描枪数据,
用EditText做字符坚挺,但在EditText焦点用法碰到了一些问题,故而把这些问题及处理方法总结一下
1.如何监听EditText字符变化
首先想到的是addTextChangedListener事件,但笔者要做的是处理扫描枪以/n结束的数据,并在下一次扫描时清除掉上一次的数据
具体代码如下:
private boolean bEnter = false;
EditSop.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int start, int before, int count) {
String str = arg0.toString();
int Len = str.length();
if(bEnter){
bEnter = false;
if( ! str.endsWith("/n") ) {
String strBuff = str.substring(Len-1, Len);
EditSop.setText(strBuff);
EditSop.setSelection(1);
}
}
if(str.endsWith("/n")){
String str1 = str.substring(0, Len-1);
int iPos = str1.lastIndexOf("/n");
String strBuff = "";
if(-1 == iPos) {
strBuff = str1.substring(0, str1.length());
}else{
strBuff = str1.substring(iPos+1, str1.length());
}
//Toast.makeText(MainActivity.this, strBuff, 2000).show();
//mbarcode = strBuff;
mDialog.setMessage("正在扫描条码...");
mDialog.show();
RScan rScan = new RScan(strBuff);
Thread thread = new Thread(rScan);
thread.start();
EditSop.setText(str.substring(0, Len-1));
EditSop.setSelection(Len-1);
bEnter = true;
}
//Toast.makeText(MainActivity.this, "start: "+start+"before: "+before+"count: "+count, 2000).show();
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {Toast.makeText(MainActivity.this, "start: "+arg1+"before: "+arg2+"count: "+arg3, 2000).show();}
@Override
public void afterTextChanged(Editable arg0) {
//Toast.makeText(MainActivity.this, arg0.toString(), 2000).show();
}
});
2.如何锁定EditText光标一直处于最后
联想到setOnClickListener就很容易处理了,代码如下:
EditSop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
int Len = EditSop.getEditableText().toString().length();
EditSop.setSelection(Len);
}
});
最后笔者在edittext与listview焦点处理上一直有问题,还需要继续研究...
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 03-08消息称微软开发内部AI推理模型,或将成为Op
- 03-08美国法院驳回马斯克请求,未阻止OpenAI转型
- 03-08饿了么成立即时配送算法专家委员会 持续全局
- 03-08长安汽车:预计今年底长安飞行汽车将完成试
- 03-08谷歌推出虚拟试穿、AR美妆新功能