最近在写一个快递查询的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相同的两个键值对,问题可能就出在这里”
我猛然意识到我也犯了同样的错误!
HashMap
对象的申明放到循环外的话,意味着循环内的每次put会覆盖掉原有的值,而且ListView
每次add的都是同一个HashMap对象!这就是为什么我的项目里
ListView
中显示的item全是最新添加的一个快递的信息。问题描述
用得好好的AS升级了一下,本来好好的隔一晚上就启动不了了,启动界面显示
遂开始了漫长焦急的治病求医。
解决过程
一个小时各种重装AS,jdk均无果。上网查资料,尝试在配置文件里添加disable.firstrun、在hosts里添加ssl-dl.google.com的ip解析等,问题依旧。后来看到一个靠谱一点的办法:
问题是一顿操作以后找不到这个文件夹啊:
C:/User/yourUserName/.Android Studio
然而我电脑上,这个文件夹存在于
C:/User/youUserName/AppData/Roaming/
希望能帮到你:)
[这是一篇历史文章,来自我的CSDN博客https://blog.csdn.net/weixin_43114076/article/details/114830741]
前言
在学习面向对象程序设计课程的时候,收获颇多,最后的课程报告选题选择了“Android开发”。但是安卓手机上好的应用数不胜数,自己不想重蹈覆辙做别人做过不知道多少遍的东西,就选择了当时相对Android手机软件开发比较小众的WearOS系统软件开发,做了TicWatch的问问商店里第一款腕上快递查询应用:派查查PieExpress。这也是我第一次做安卓开发,如有不足,还请海涵。
目录
项目概述
运行环境:Google WearOS 国内版
软件类型:快递查询工具
基本功能:
- 快递查询:在手表上输入快递运单号后,联网查询快递的运输信息,包括运输状态、到达时间和地点等。
- 快递收藏:输入的运单号和查询的快递信息可以本地保存,方便下次查看,可以为运单号写备注,方便知道是哪个快递。
- 语音录入:输入运单号或运单备注时可以语音输入(调用TicWatch语音接口实现,小米手表等可能无法使用)