TextWatcher txtEditWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub Log.e(LOGTAG, "List size " + mStringList.size());
} public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
} public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
mIsChanged = true;
if (DEBUG) {
Log.i(LOGTAG, "onTextChanged");
}
if (mTxtEdit.getHeight() <= mEditTextMinHeight) {
Log.e(LOGTAG, "$$$$$$$$$$$$$$$$$$ reach min height!");
if (mIndex + 1 < mLengthList) {
mStringList.set(mIndex, mTxtEdit.getText()
+ mStringList.get(mIndex + 1));
mStringList.remove(mIndex + 1);
mLengthList -= 1;
int scrollY = mScrollview.getScrollY();
// mTxtEdit.setText(mStringList.get(mIndex));
mScrollview.setScrollY(scrollY);
mHasEverChange = true;
// setEditTextThread.start();
} else {
if (mTxtEdit.getText().toString().equals("")) {
if (mIndex - 1 >= 0) {
// If changed, then save the change to list
mStringList.remove(mIndex);
mLengthList -= 1;
mHasEverChange = true;
mIndex--;
// mTxtEdit.setText(mStringList.get(mIndex));
mIsChanged = false;
mScrollview.setScrollY(0);
// setEditTextThread.start();
}
}
}
}
}
};
关键是onTextChanged里面还有个setText,它又会导致onTextChange的调用,这样会一直递推下去?请问有没有好的解决办法?我要在onTextChanged之后,调用setText,改变EditText上显示的文本。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货