您的位置:首页 > 移动开发 > Android开发

Android开发随手记之一

2016-02-12 16:03 253 查看
最近接了两个外包,另外还负责WI输入法http://wi.hit.edu.cn的手写开发和一个Bug的解决,总结一些经验吧。

两个问题

1、当在『浏览状态下』,有个『更多』按钮,点击『更多』按钮,数据源改变,然后notifyDataSetChanged()进行刷新ListView,notifyDataSetChanged()是观察者模式。但此时如果已经切换到『编辑状态』的话,再点击『更多』,会报NullPointerException。因为在从『浏览状态』切换到『编辑状态』的时候,ListView已经重新装配了Apdater,此时去改变数据源再notifyDataSetChanged(),是不行的。为什么不行?后面会讲述。正确做法是当点击『更多』按钮,都重新装配一次,而不是notifyDataSetChanged();

2、自定义Dialog显示GridView,GridView的每一项Item都由图片和文字组合,点击GridView中的某一项Item,改变图片和文字,再dismiss dialog,重新唤出Dialog的时候,文字不改变,图片改变。如果不dismiss dialog,文字和图片都改变。这是什么鬼???

一些积累

1、一个购物车列表或其他的列表,可以用ListView来实现,当由『浏览状态』进入『编辑状态』的时候,可以这么干。『浏览状态』用一个xml文件,『编辑状态』用一个xml文件,这样实现会很简单,然后写一个Adapter的构造函数(参数中含有xml文件资源int值),每次切换,都重新new一遍Adapter,再setListAdapter。

2、padding内边距,margin外边距。GridView中android:stretchMode="columnWidth"列宽自动缩放。

3、虽然所有的页面都可以写入代码中,这样会使得管理空间非常灵活。但动态管理控件,Dom操作,消耗资源。所以还是将用代码关系界面和用XML管理界面相结合。

4、思路一定要清晰,第一步,第二步,第三步.....做一步检查一步。封装函数尽量要功能单一。

5、一个Android最佳实践开源项目https://github.com/tianzhijiexian/Android-Best-Practices

6、按钮xml格式一般定义



7、先设计数据库,再实体层,再数据访问接口层(dao),再实现层,业务逻辑层,再View层。分层,MVC。这些我会在详细写一篇博客的。

8、用Android Studio给我的程序用JUnit做单元测试

<uses-library android:name="android.test.runner" /> // 要在<Application>结点中

<instrumentation // 这个在Application节点外
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="你的App包名"
android:label="test for my app" />


出了一个问题,targetPackage属性出现了cannot resolve symbol问题。但是在运行的时候,没有任何问题。暂时的一个可能原因是lint的一个问题,提示出错了,其实是没问题的。暂时还没有找到更合理的原因。

9、分页必须知道的信息

1.每页多少记录,决定前端每页显示多少条记录

2.取第几页,决定前端某个页面到底显示什么,select * from employee limit 1, 8

3.共有多少条记录,select count(*) from employee,为了计算总页数,为什么要计算总页数,为了判断是否已经到了最后一页

总页数 = 总记录数 % 每页记录数 == 0 ?总记录数 / 每页记录数 : 总记录数 / 每页记录数 + 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: