Android EditText 用法及焦点处理总结

浏览:
字体:
发布时间:2013-12-17 09:37:23
来源:

笔者最经最近在做一个项目,主要是在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焦点处理上一直有问题,还需要继续研究...

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();