错误记录 | 一个导致ListView中item内容全部重复的可能原因

最近在写一个快递查询的WearOS App,突然有一次调试发现主界面的ListView里的item,显示的都是一模一样的内容,全是最新添加的一个快递的内容(这是一个伏笔哈哈哈)。
遂思前想后,开始以为是ListView的问题,但是没结果。接着以为是Adapter的问题,但很快又否决了这个想法,因为项目一开始也是用的SimpleAdapter,且当时ListView显示正常。无意中看到一篇Blog:

HashMap对象重复赋值在多线程中的教训
https://blog.csdn.net/goodguyzl/article/details/83847286

该文中写道:

“HashMap对象是在while循环外面声明的(第一行代码那里),但是在循环里面这个HashMap对象反复了put了key相同的两个键值对,问题可能就出在这里”“HashMap对象是在while循环外面声明的(第一行代码那里),但是在循环里面这个HashMap对象反复了put了key相同的两个键值对,问题可能就出在这里”

我猛然意识到我也犯了同样的错误!

info:HashMap对象的申明放到循环外的话,意味着循环内的每次put会覆盖掉原有的值,而且ListView每次add的都是同一个HashMap对象!
这就是为什么我的项目里ListView中显示的item全是最新添加的一个快递的信息。