如上图studio报的错,首先我自定义了一个edittext用于查询数据,然后自定义了一个带原生edittext控件的dialog。
操作流程是,在自定义edittext里面输入数据用于模糊查询,点击模糊查询出来的数据,弹窗自定义的dialog,出现崩溃。此时怀疑哪的数据有问题,查了一会没发现数据方面的空指针问题。神奇的地方在于我获取数据的来源有两个,一种http下载,一种tcp下载,虽然它们服务器不同,但下载的数据基本一样。在http下载数据后,以上的操作不会出任何异常,但在tcp下载数据后就会出以上问题。接下来,屏蔽掉dialog里面的edittext,无任何异常,此时怀疑与焦点问题有关,但设置enable或者focus后都无效,此时头皮就有点发麻了。
接下查阅资料,百度,google,gpt,试了无数,终于查到一个关于TextView焦点的说法,自动填充功能!
android:importantForAutofill="no"
神奇啊,就这么一句,加在自定义dialog里面的edittext上面,问题就解决了。
最后只能说解决了崩溃问题,但是根本原因及原理一概不知,为什么会出现这个问题?为何这个异常和我下载数据的方式或者数据有关联?