调试开源应用《酷欧天气》小结

本文总结了调试开源应用《酷欧天气》的经验,强调了数据库访问的准确性、代码逻辑的连贯性、调试技巧、命名规范的重要性。通过详细列举遇到的问题,如URL前缀遗漏、数据库查询混乱、逻辑错误等,提出了提高编程效率的建议,如使用Github管理版本、优化代码结构、熟悉多线程和网络访问方法。同时,还重点回顾了XML布局、ListView与数据库操作、接口使用等方面的要点。
摘要由CSDN通过智能技术生成

1、访问数据库的代码如果出错,在AS中很难从提示信息中看出来。所以访问数据库的代码要仔细检查。

2、无论是书写代码还是检查代码,应该注意到逻辑上的连贯性为主线而不是篇幅上的。根据程序的逻辑去书写,根据程序的逻辑去检查。

3、脑中想象出来,对已一个项目边开发边测试的感觉。比如自顶向下的项目,顶层的逻辑写好之后针对顶层做一个测试,顶层确定可用又健壮,就可以写底层的了。

同理底层的每一地方也都要逐块测试好之后再进行组合。

4、出现错误将调试信息过滤器调到error,从上往下看,最上面第一条最准确所以也最重要,往往指出了错误的地方。

5、数据库中的字段命名和程序中变量的命名不要混淆。例如本例中数据库中的id名字为“city_id”而程序中使用的是cityId作为变量。无论是大小写还是下划线形式都有区别,要养成风格遵守习惯。

其实写程序重要的是心法。当然,做什么事情都是这样。几百行几千行的程序只要不到一秒钟就执行完毕,给用户的感觉是方便快捷。可是其中的每一件事情就在写代码的时候就如同一件一件亲自做完一样。所以你要怀着自己跑腿去做好一件事的心态去写代码,怀着自己的组织出现问题打电话一个一个询问的态度去修改代码。这样才是一个心态。

该快是因为机器执行快,该慢是因为事情都是经过思

Android天气预报实验报告模板 public class SetCityActivity extends Activity { //定义的一个自动定位的列表 private ListView gpsView; //定义的一个省份可伸缩性的列表 private ExpandableListView provinceList; //定义的用于过滤的文本输入框 private TextView filterText; //定义的一个记录城市码的SharedPreferences文件名 public static final String CITY_CODE_FILE="city_code"; //城市的编码 private String[][] cityCodes; //省份 private String[] groups; //对应的城市 private String[][] childs; //自定义的伸缩列表适配器 private MyListAdapter adapter; //记录应用程序widget的ID private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.set_city); gpsView = (ListView)findViewById(R.id.gps_view); provinceList= (ExpandableListView)findViewById(R.id.provinceList); //设置自动定位的适配器 gpsView.setAdapter(new GPSListAdapter(SetCityActivity.this)); //==============================GPS================================= //当单击自动定位时 gpsView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView localeCity = (TextView)view.findViewById(R.id.locateCityText); localeCity.setText("正在定位..."); final LocateHandler handler = new LocateHandler(localeCity); //添加一个线程来处理定位 new Thread(){ public void run() { Map<Integer, String> cityMap= getLocationCityInfo(); //记录匹配的城市的索引 int provinceIndex = -1; int cityIndex = -1; //传给处理类的数据封装对象 Bundle bundle = new Bundle(); if(cityMap!=null) { //得到图家名 String country = cityMap.get(LocationXMLParser.COUNTRYNAME); //只匹配中国地区的天气 if(country!=null&&country.equals("中国")){ //得到省 String province = cityMap.get(LocationXMLParser.ADMINISTRATIVEAREANAME); //得到市 String city = cityMap.get(LocationXMLParser.LOCALITYNAME); //得到区县 String towns = cityMap.get(LocationXMLParser.DEPENDENTLOCALITYNAME); Log.i("GPS", "============"+province+"."+city+"."+towns+"=============="); //将GPS定位的城市与提供能查天气的城市进行匹配 StringBuilder matchCity = new StringBuilder(city); matchCity.append("."); matchCity.append(towns); //找到省份 for(int i=0; i<groups.length; i++) { if(groups[i].equals(province)) { provinceIndex = i; break; } }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马工匠坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值