改bug总结—2015年11月于nice实习
2016-02-19 16:25
393 查看
继续总结我遇到的bug君们~~
1.App的启动页可使用Activity的theme属性来设置,这样主界面未加载完成时就显示theme,加载完成后在Activity的onCreate函数中再设置setTheme(null)来销毁这个启动页,加载正常界面即可。比单独写一个Activity来展示启动页开销小,效率高。
AndroidManifest中代码如下:
参考:
http://blog.chengyunfeng.com/?p=741 http://www.codeceo.com/article/android-app-theme-style.html
2.使用layer_list处理图片的层叠效果。layer_list中的item可以设置不同属性,可以将drawable或bitmap来设置图片,使用bitmap时可以保证原有图片之间的相对大小关系。
参考:
http://keeganlee.me/post/android/20150909 http://blog.csdn.net/pcaxb/article/details/47781547
3.新消息的提示数字不能阅后即焚,单独设计一个类NoticeNum来存储和更新各种提示的阅过状态,显示与否就依此判断。
4.做通讯录的更新,需要得到现有通讯录对应原通讯录的增删数据集,就是两个集合的子交并补运算,而List有现成的方法,所以联系人数据便采用List存储。有一点注意,List的内部元素若是对象,一定要复写equals和hashcode方法,明确两个对象何时才认为是相同的。
5.使用anonotation注解开发,报了200个错,再没有其他有用信息,当时原因是:子类fragment中使用@fragmentArg定义了与父fragment中同名的参数。
(当时解这个bug,用了一天。。。)
6.Android Studio上恢复误删文件的方法:右键点击工程—>local history —>show history 即可找回文件。
7.做密码输入的隐显控制,先在xml中设置EditText的inputType=“password”,然后代码中使用EditText的setTransformationMethod方法来控制密码显示,这时遇到的问题是:设置了inputType后,EditText的hint显示受到影响,英文由半角显示变成了全角显示,中文正常。解决办法是:代码中设置editText.setTypeface(Typeface.SANS_SERIF),而且只能代码中设置,xml中无效。同样,xml中设置password=“true”时也会如此,办法同上。
8.遇到了一个诡异的bug:acy启动时执行的方法进不去了,调试时给的信息是:
no such instance field : ‘XXX’。但是这个变量是存在且有值的,google的结果是说重启AndroidStudio就好,是AndroidStudio引用了之前版本的文件,不是代码的问题,然后好了。
参考:
http://stackoverflow.com/questions/28646999/no-such-instance-field
1.App的启动页可使用Activity的theme属性来设置,这样主界面未加载完成时就显示theme,加载完成后在Activity的onCreate函数中再设置setTheme(null)来销毁这个启动页,加载正常界面即可。比单独写一个Activity来展示启动页开销小,效率高。
AndroidManifest中代码如下:
<activity android:name=".activities.MainActivity_" android:configChanges="locale|layoutDirection" android:launchMode="singleTop" android:screenOrientation="portrait" android:theme="@style/MainActivityTheme"//设置启动页 android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
参考:
http://blog.chengyunfeng.com/?p=741 http://www.codeceo.com/article/android-app-theme-style.html
2.使用layer_list处理图片的层叠效果。layer_list中的item可以设置不同属性,可以将drawable或bitmap来设置图片,使用bitmap时可以保证原有图片之间的相对大小关系。
参考:
http://keeganlee.me/post/android/20150909 http://blog.csdn.net/pcaxb/article/details/47781547
3.新消息的提示数字不能阅后即焚,单独设计一个类NoticeNum来存储和更新各种提示的阅过状态,显示与否就依此判断。
4.做通讯录的更新,需要得到现有通讯录对应原通讯录的增删数据集,就是两个集合的子交并补运算,而List有现成的方法,所以联系人数据便采用List存储。有一点注意,List的内部元素若是对象,一定要复写equals和hashcode方法,明确两个对象何时才认为是相同的。
5.使用anonotation注解开发,报了200个错,再没有其他有用信息,当时原因是:子类fragment中使用@fragmentArg定义了与父fragment中同名的参数。
(当时解这个bug,用了一天。。。)
6.Android Studio上恢复误删文件的方法:右键点击工程—>local history —>show history 即可找回文件。
7.做密码输入的隐显控制,先在xml中设置EditText的inputType=“password”,然后代码中使用EditText的setTransformationMethod方法来控制密码显示,这时遇到的问题是:设置了inputType后,EditText的hint显示受到影响,英文由半角显示变成了全角显示,中文正常。解决办法是:代码中设置editText.setTypeface(Typeface.SANS_SERIF),而且只能代码中设置,xml中无效。同样,xml中设置password=“true”时也会如此,办法同上。
8.遇到了一个诡异的bug:acy启动时执行的方法进不去了,调试时给的信息是:
no such instance field : ‘XXX’。但是这个变量是存在且有值的,google的结果是说重启AndroidStudio就好,是AndroidStudio引用了之前版本的文件,不是代码的问题,然后好了。
参考:
http://stackoverflow.com/questions/28646999/no-such-instance-field
相关文章推荐
- 获取站点
- MongoDB固定集合
- c# 获取MP3和AMR文件格式的时长
- 几款开源的图形化Redis客户端管理软件
- Linux初始root密码设置
- python中的exec、eval和repr
- 这么多年了,我想说:我还想等你…
- 收缩ORACLE表空间
- 定时任务Crontab
- SQL中 decode()函数简介
- [I0A]排序算法综合实例
- hdu2566 Java
- Libimseti上的匿名用户推荐系统
- 2016-02-19
- 37.Activity之间的转换以及数据的传递(Intent)学习
- Linux:alias 起别名
- windows用crt免密码登录linux系统
- 学习SpringMVC 笔记
- Ajax基础
- 提升Salt Api稳定性