2011-05-13 44 views
1

我正在設計一個簡單的費用應用程序,用於跟蹤每個月的費用。費用有名稱,金額和類別。可以隨意添加/刪除類別。我將類別和費用存儲在數據庫中。用於將部分記錄信息保存到數據庫的Android UI模式

現在,我公開添加類別功能的方式是在「添加費用」活動中保留一個editText和一個名爲「添加類別」的按鈕。

因此,對於像用戶沒有輸入任何有關費用的用戶場景,但只是添加類別,我希望它被保存在數據庫中。

可以通過使用AsyncTask調用數據庫幫助器將值插入表中,在數據庫中立即完成類別保存。

在此期間,我很困惑應該放置一個progressDialog,以告訴用戶我正在保存某些東西或讓他在其他字段中填充信息。

在將記錄的部分信息保存到數據庫中時,究竟是UI模式還是常見的策略。另外,如果我只是導航到不同的活動,如果將類別添加到數據庫中會產生錯誤?

此外,一個側面問題,我應該把「添加類別」按鈕放在與添加費用不同的活動中嗎?

+0

我不認爲添加一個類別需要在asynctask。它應該如此之快以至於不能被用戶察覺。編號只需將它添加到主線程,並立即提醒用戶是否失敗。顯示進度,然後解散等開銷實際上會讓應用程序看起來更慢。 – jkhouw1 2011-05-13 01:43:15

回答

1

http://developer.android.com/guide/practices/design/responsiveness.html

可能長時間運行的操作,如...數據庫操作......應在一個子線程來完成(或數據庫操作的情況下,通過異步請求)。但是,這並不意味着您的主線程應該在等待子線程完成時阻塞...

由於本文的原始狀況已經描述,所以可能不需要進度對話框。也許屏幕旁邊可能會有一些小的可視標記保存在記錄中,表明它是保存狀態(可能是「新建」,「保存」,「保存」,「問題/錯誤」)之一。在保存錯誤的情況下,如果保存記錄對用戶來說可能很重要,那麼我肯定會非常明顯地向用戶表明存在問題,併爲他們提供補救措施。另外,請注意,Android用戶界面工程師(包括撰寫Twitter官方應用程序的人員)至少在最近一次Google I/O 2011會議期間(其視頻的可用空間爲http://www.youtube.com/googledevelopers)建議阻止UI,例如進度對話框會受到限制,因爲它們的過度使用可能會導致用戶體驗不理想,從而導致應用程序感覺無響應並且使用速度很慢。

相關問題