addTextChangedListener在fragment中多次執行問題

文章同步發佈到簡書:http://www.jianshu.com/u/44dd2c2ff016
轉載請註明出處:http://blog.csdn.net/ling9400

實在不知道這篇博客算原創還是譯文,在國內沒有搜到相關的博客或者提問,姑且還是算做譯文吧!畢竟在stackoverflow上還是有人遇到過相同的問題,並且提問的,原地址:http://stackoverflow.com/questions/21713246/addtextchangedlistener-and-ontextchanged-are-always-called-when-android-fragment

好了,來說下這個問題是怎麼存在的吧!並復原一下問題所在。

既然說是在fragment中多次執行,那肯定會有fragment的替換
getSupportFragmentManager().beginTransaction().replace(R.id.flLayout,
fragmentSearch , "fragment_search").commit();

類似這樣的代碼吧!replace的這個fragmentSearch中肯定有一個editText,並且設置了addTextChangedListener監聽方法,

設置監聽

這樣你就可以在afterTextChanged中打印Log,然後你通過切換fragment就會看到——明明我沒有輸入字符,爲什麼editText居然會執行TextChangedListener呢?

Oh, Shit,什麼鬼

不要怕,來,來,來!本猿教你解決辦法,跟stackoverflow中大佬說的一樣,將監聽方法寫在fragment的onResume方法中就能看到真相了!

真相大白

到此,博客結束,歡迎各位猿友指點。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章