菜鸟零碎笔记(零碎记录ing,未整理,虐眼)
最近在写一个简单的UI Setting界面,用的是FragmentPreference及preference系列控件。
被两个弱智错误消耗了好几个本该很美好的睡前时光。。。
1. 该用 if(str.equals("aaaaa"))来判断String类型的引用str的值是否等于"aaaaa",结果被我头昏脑胀地写成了C++中的 if(str=="aaaaa") ,于是程序走到那里就直接false绕开了,但编译器是不会报错的,而我又继续很挫地没把log打到精确的位置,导致被这个错误纠结了好几次都没发现。。。
【神神叨叨】1)要继续熟悉java啦,虽然它跟c++有点相似,但也不是直接这么干的。2)出错后更要思路清晰,打log要精确,不然越debug只会把自己的脑袋搞得越bug,而程序里的bug还在那里偷着乐呢。
2. 某PreferenceFragment中的EditTextPreference的控件,当其text值被用户改动并点OK按钮后,即使退出了这个fragment,改动之后的值也该被自动保存在那个packname_preference.xml中才对,于是之后再次点进这个fragment,该text值应该是改动之后的新值。但我的这个傻UI中的EditTextPreference控件却不能自动保存改动值。开始是怀疑自己少override了哪个method或者少定义了啥class,总之把程序path来回检查,郁闷了半天。
最后试图自己写onChanged方法,它需要我具体控件的key,才突然意识到我用eclipse图形化地设计界面时,并没有设置key的属性,然后即使SDK自动给你onChanged保存,它也没有key来区分具体是哪个控件啊,把key加上了果然就都可以自动保存了。囧。
【神神叨叨】这个就是你太不熟悉了,最基本的都忽略了。能突然想起来算你走运,静下心慢慢积累吧。
浙公网安备 33010602011771号