当前位置:编程学习 > wap >>

关于EditText的onTextChange函数


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上显示的文本。 --------------------编程问答-------------------- 加个标记,表示onTextChanged是谁触发的。 --------------------编程问答--------------------
引用 1 楼 qaandtest 的回复:
加个标记,表示onTextChanged是谁触发的。

只有一个EditText,还能是谁? --------------------编程问答-------------------- 我也想知道有没有什么好的办法! --------------------编程问答-------------------- 我的意思是说用这个标记记录一下谁触发的ontextchanged,如果是settext就直接return。唉。 --------------------编程问答--------------------
引用 4 楼 qaandtest 的回复:
我的意思是说用这个标记记录一下谁触发的ontextchanged,如果是settext就直接return。唉。

恩,我懂你的意思了。谢谢了。 --------------------编程问答--------------------
引用 4 楼 qaandtest 的回复:
我的意思是说用这个标记记录一下谁触发的ontextchanged,如果是settext就直接return。唉。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,