文章同步發(fā)布到CSDN:http://blog.csdn.net/ling9400/article/details/60323283
轉(zhuǎn)載請注明出處:http://blog.csdn.net/ling9400(什么鬼膛虫,不支持markdown語法撒会,還是我不會碌补?)
實在不知道這篇博客算原創(chuàng)還是譯文饲漾,在國內(nèi)沒有搜到相關(guān)的博客或者提問显拜,姑且還是算做譯文吧枢泰!畢竟在stackoverflow上還是有人遇到過相同的問題笨蚁,并且提問的,原地址:http://stackoverflow.com/questions/21713246/addtextchangedlistener-and-ontextchanged-are-always-called-when-android-fragment
好了瓷胧,來說下這個問題是怎么存在的吧显拳!并復(fù)原一下問題所在。
既然說是在fragment中多次執(zhí)行搓萧,那肯定會有fragment的替換
getSupportFragmentManager().beginTransaction().replace(R.id.flLayout,
fragmentSearch , "fragment_search").commit();
類似這樣的代碼吧杂数!replace的這個fragmentSearch中肯定有一個editText,并且設(shè)置了addTextChangedListener監(jiān)聽方法瘸洛,
這樣你就可以在afterTextChanged中打印Log揍移,然后你通過切換fragment就會看到——明明我沒有輸入字符,為什么editText居然會執(zhí)行TextChangedListener呢反肋?
Oh, Shit那伐,什么鬼
不要怕,來,來喧锦,來读规!本猿教你解決辦法,跟stackoverflow中大佬說的一樣燃少,將監(jiān)聽方法寫在fragment的onResume方法中就能看到真相了!
到此铃在,博客結(jié)束阵具,歡迎各位猿友指點。