編輯:關於Android編程
筆者最經最近在做一個項目,主要是在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焦點處理上一直有問題,還需要繼續研究...
在學完了Android的基礎之後,我開始嘗試著寫一些小項目練練手,同時進一步鞏固自己的基礎知識,而我選的的第一個項目就是做一個簡單的人人對戰的五子棋小游戲。首先,我們要新
在app中經常會用到底部菜單的控件,每次都需要寫好多代碼,今天我們用到了前幾篇博客裡的控件來進一步封裝底部菜單。先看效果圖:主要包括以下功能: 1 設置icon以及點擊之
概念:LruCache什麼是LruCache?LruCache實現原理是什麼?這兩個問題其實可以作為一個問題來回答,知道了什麼是 LruCache,就只然而然的知道 Lr
一、前言 正在搞IOS的微信支付和支付寶支付,焦頭爛額之時,天上掉下來一個Android分包工具的需求,覺得還蠻有意思,其實之前一直想搞一個類似的東西,正好趁著這次機會實
前面的博客中,我們已經分析過,當Android中的進程要使用電量時,需要