一些好的習慣,比如體育鍛煉、技能學習、早睡早起等,需要長期的堅持才能看到效果。但是大家現在的生活、工作節奏都很快,事情很多,稍不注意,一些欲帶養成的習慣,隨着一次兩次的疏忽,逐步發展到完全遺忘,也是常有的事情。
對我自己來講,希望有這樣一款軟件:它可以記錄我一週之內,某些行爲進行了多少次,如果離目標相差很多,能得到某種提示。平時我一直在使用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的過程中,經常碰到選中一項無法變色的情況,我總結了兩種原因:
2.item項上面有控件搶佔了焦點,例如checkbox