addTextChangedListener在fragment中多次执行问题

简介: 文章同步发布到CSDN:http://blog.csdn.net/ling9400/article/details/60323283转载请注明出处:http://blog.

文章同步发布到CSDN:http://blog.csdn.net/ling9400/article/details/60323283

转载请注明出处:http://blog.csdn.net/ling9400(什么鬼,不支持markdown语法,还是我不会?)

实在不知道这篇博客算原创还是译文,在国内没有搜到相关的博客或者提问,姑且还是算做译文吧!毕竟在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方法中就能看到真相了!

真相

到此,博客结束,欢迎各位猿友指点。

目录
相关文章
|
8月前
activity中加载fragment的控件 在fragment 中调用activity中的控件
activity中加载fragment的控件 在fragment 中调用activity中的控件
60 0
|
8月前
fragment启动activity方法
fragment启动activity方法
62 1
|
XML 缓存 Android开发
QMUI实战(二)—Activity 和 Fragment,我们该选择谁?
在一开始,官方只提供了 Activity 来作为 UI 界面的载体,因此我们也别无选择,只能用它。而在 Android 3.0 后,Fragment 也面世了,它一开始是用于适配平板的,以邮件列表与详情的适配为例,手机端够小,因此开始展示列表,点击进入详情,而平板够大,则可以列表显示在左侧,详情显示在右侧,点击列表只是切换详情。对于这种适配场景,列表页和详情页必须在同一个 Activity 里了,而这便是我所知道的 Fragment 诞生的场景了。
215 0
|
XML 移动开发 Android开发
activity中加载fragment的控件]
fragment它自己的中文意思:碎片; 一个可以将activity拆分成几个完全独立封装的可重用的组件,每个组件有自己的生命周期和ui布局。
316 1
activity中加载fragment的控件]
Activity中,View#postDelay会导致内存泄漏,但是不会影响Activity的生命周期执行。
Activity中,View#postDelay会导致内存泄漏,但是不会影响Activity的生命周期执行。
|
Kotlin
我们真的了解 Activity 与 Fragment 的生命周期吗?
      小菜中午和朋友闲聊,被问到 Activity 与 Fragment 的生命周期,以为是很基础的东西,基本可以把生命周期说全,但是被问到 Activity 与 Fragment 交互的生命周期运行顺序,切换 Fragment 时候的生命周期顺序,以及切换完之后退出时的生命周期...瞬间感觉基础知识太不扎实了。
1082 0
|
XML API Android开发
Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。
在oneActivity中实现跳转到MainActivity        //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent MainActivity = new Intent();         MainActivity .
1286 0