關於EditText中重寫方法的意義及數量關係

TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,int after) {

        LogUtils.e("FeedActivityaaaa111111111111","sA="+s+"startA="+start+"countA="+count+"afterA="+after);
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

        LogUtils.e("FeedActivityaaaa22222222222","sB="+s+"startB="+start+"beforeB="+before+"countB="+count);
    }

    @Override
    public void afterTextChanged(Editable s) {

    }

};

先前說明:

比如我再鍵盤上一下輸入三個字,然後點擊文本在EditText上一下多了三個字,這樣情況下count = 3,

如果輸入一個字一個字輸入count = 1;我將輸入數量定義爲 N;

在befroreTextChanged中:

start:輸入內容之前光標的位置,下標從0開始算起。

count:一次性輸入的文本的長度N,如果是輸入 count = 0;如果是刪除 count = N;

after:一次性輸入文本後的長度N,如果是輸入 after = N;如果是刪除 after = 0;


在onTextChanged中:

start:通beforeTextChange中的start;

count:同beforeTextChanged中的after;

before:同beforeTextChanged中count;


代數關係,分別令

beforeTextChanged中的變量爲

startA,countA,afterA

onTextChanged中的變量爲

startB,countB,beforeB


兩者的關係是

不論是輸入還是輸入都存在的關係:

startA == startB;

countA == beforeB;

afterA == countB;


只有在輸入的時候存在的關係:

countA + N = countB;




發佈了147 篇原創文章 · 獲贊 33 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章