Good Habit:习惯养成软件

来源:互联网 发布:高级java工程师 工信部 编辑:程序博客网 时间:2024/06/05 18:11

一些好的习惯,比如体育锻炼、技能学习、早睡早起等,需要长期的坚持才能看到效果。但是大家现在的生活、工作节奏都很快,事情很多,稍不注意,一些欲带养成的习惯,随着一次两次的疏忽,逐步发展到完全遗忘,也是常有的事情。


对我自己来讲,希望有这样一款软件:它可以记录我一周之内,某些行为进行了多少次,如果离目标相差很多,能得到某种提示。平时我一直在使用remember the milk,也找了些专门的habit软件,对我这个需求,都有些不太合适。所以决定花一些业余时间,自己开发一个。目前已经完成了Android的第一个版本。





这个界面是仿remember the milk的,个人感觉比较清爽,很喜欢。完成次数和目标次数通过进度条显示,一周之内,越难完成的目标,底色会用越来越深的红色提示。


软件规模很小,主界面是个listview,在新增、删除、过期、完成详细情况展示的时候,分别会有一个对话框。后期考虑加入桌面widget,通知栏提醒等功能。有兴趣的朋友可以找我要apk


开发过程还是比较顺利的,之前只接触过Android游戏开发,这次应用开发,遇到问题主要是靠搜索Android官网文档以及技术博客找到解决方案的。


值得一写的开发细节,我觉得Java语言的内部匿名类及其在Android事件驱动方式上的应用算是一个。

        OnItemLongClickListener listener = new OnItemLongClickListener(){        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id){        if(longClickId != id){        longClickId = id;        removeDialog(CONFIRM_DEL_HABIT_DIALOG);        }        showDialog(CONFIRM_DEL_HABIT_DIALOG);        return true;        }        };        lv.setOnItemLongClickListener(listener);

最先吸引我的还是这种对我来说略显怪异的语法。另外老赵的博客中有几篇匿名类、函数的文章,对比Java和C#,让人读后若有所悟。


另外遇到的一个比较棘手的问题,是在使用listview的过程中,经常碰到选中一项无法变色的情况,我总结了两种原因:

1.item项里的view,背景色没有设透明
2.item项上面有控件抢占了焦点,例如checkbox