2010-11-02 29 views
1

我有一個應用程序,涉及跟蹤信息隨着時間的推移。部分應用程序是重置按鈕。爲了避免意外重置,我讓該按鈕只響應長按。但是,這種方法困擾了我的新用戶中的20%,他們認爲重置按鈕一定不能工作。你如何保護用戶免受Android中的危險按鈕?

是否有更直觀(和標準)的方法來保護按鈕免受意外按下? (如果沒有,我可以給我的按鈕添加某種自定義消息...)

+5

確認對話框? – Thilo 2010-11-02 03:10:55

+0

來這裏說...>。> – kcoppock 2010-11-02 03:16:00

+0

這可以工作。但它不愉快。 (當然,它比想着一個按鈕不起作用更令人愉快。) – 2010-11-03 03:45:48

回答

2

A Thilo說,確認對話框是標準答案。

這是很好的閱讀,如果您尚未:

http://www.codinghorror.com/blog/2010/03/the-opposite-of-fitts-law.html

基本上,使之小!長時間點擊是一個很好的答案,但除非在下面有「按住」標籤,否則用戶會遇到麻煩 - 這違反了用戶模型,因爲用戶不習慣於這樣做(我可能不會那麼做)無法弄清楚)。

在iPhone上,對於像這樣的操作有「滑動」按鈕(如解鎖)是相當標準的,因爲意外滑動要困難得多。你可以實現類似的東西,但這可能是矯枉過正的問題。

0

雖然這是一種解決方法,它仍然有效。

case R.id.bReset: 
long startTime = System.nanoTime(); 
boolean running = true; 
//show dialog with a single button - cancel. Outside the loop. Upon cancel, set cancelled to true. 
//You can use DialogFragment or AlertDialog 
while(running && !canceled){ 
    long elapsed = (System.nanoTime() - startTime)/1000000; 
    if(elapsed > securityTime && !canceled) {//set security time to amount of seconds * 1000 
     //Dismiss dialog 
     //reset 
    } 
} 
break; 

從目前接受的答案:

正如蒂洛說,一個確認對話框是標準答案。

這並不一定是一個確認對話框,但如果意外按用戶應該有機會,而在同一時間,如果用戶想要做的是不需要進一步的行動,以取消操作。

相關問題