2009-07-14 21 views

回答

11

我不是Android用戶或開發人員,但我認爲鏈接主題給出的答案相當不錯:在所有Android設備上都有一個硬件「返回」鍵。用戶應該知道要將他們當前所進行的任何活動按回來。

因此,UI設計者認爲沒有必要包含GUI後退/取消按鈕。這可以看作是DRY原理的UI應用;如果已經有一種做某事的方式,那就夠了。

+1

歷史上在UI中,通常認爲提供多種冗餘方式來實現相同的任務通常會更好。有趣的方法,如果這是他們這樣做的原因。 – 2009-07-14 08:02:11

2

硬件密鑰就是這裏的答案。我會小心將UI原理概括爲DRY原理。在很多情況下,您需要通過標題,正文,顏色和圖像反覆錘擊,錘擊,重複敲擊同一點。

用戶不會像讀小說那樣「閱讀」用戶界面。他們掃描閱讀。

1

我不能說其他應用程序,但在我的任何可能導致UI線程等待的東西都在一個單獨的線程中執行。我要做的最多的是在標題欄中顯示一個小進度微調以讓用戶知道背景中正在發生的事情。

16

不知道整個取消按鈕...我聽說過onCancel()方法沒有正確觸發的報告。我的解決方案只包括在對話框上打一個正常的按鈕,每次按下按鈕時都會返回一個返回值。

private void createCancelProgressDialog(String title, String message, String buttonText) 
{ 
    cancelDialog = new ProgressDialog(this); 
    cancelDialog.setTitle(title); 
    cancelDialog.setMessage(message); 
    cancelDialog.setButton(buttonText, new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     { 
      // Use either finish() or return() to either close the activity or just the dialog 
      return; 
     } 
    }); 
    cancelDialog.show(); 
} 

就用一個簡單的調用方法從其他地方在您的活動

createCancelProgressDialog("Loading", "Please wait while activity is loading", "Cancel"); 

而簡單的解決方案,但它的伎倆;) 也只是要注意,cancelDialog是活動擦拭變量,如果你不需要從其他地方調用它,那麼你應該能夠避免將變量的範圍限制爲該方法。

0

作爲一名Android用戶和開發人員,我認爲,根據我對該平臺的理解,在無取消進度對話框中默認沒有取消按鈕是一個很好的理由。

作爲開發人員,這些對話框默認情況下不能取消,也就是說,您必須將其明確設置爲可取消。

這是有道理的,因爲它們的目的是通過UI線程提醒用戶,在用戶應該繼續使用應用程序之前,其他地方正在進行的某些工作對於更新UI線程很重要。

例如,當獲取數據列表以佔用空屏幕時,沒有任何可交互的內容,並且需要讓用戶意識到發生了某些事情,並期望沒有任何可用於交互的內容直到這個過程完成。

但是,可能有些情況下,例如從互聯網上進行數據檢索,其中過程「簡單」,並且由於連接問題,您可能無法完成請求並在此處卡住。

這是一個開發工具,您可以使對話框可以取消。

現在作爲一個明確瞭解Android的UI範例的用戶,我知道如果我想回到之前做的或者「取消」當前操作,我應該按回鍵。

作爲一個用戶,知道在Android中,菜單鍵通常可以顯示隱藏的選項,有時在看似空白的屏幕上無法進行交互,這兩者並無不同。

這是用戶期望的行爲以及平臺的設計方式。你可以添加一個取消按鈕,但是從瞭解他們手機的用戶角度來看,這並沒有什麼不同,後退鍵顯然是這個目的的預期選擇。

活動和用戶界面有一個流程,你流過活動和「堆疊」的用戶界面「屏幕」,後退按鈕實質上是「彈出」堆棧中的最後一件東西,讓你回到以前的位置。如果您看到對話框是另一個這樣的活動,您想從堆棧頂部彈出它以返回到下面的內容或之前的活動。

如果開發人員的對話不能被回退取消,那麼它可能是設計,在某些情況下,這可能是非常好的原因,或者它是開發不善和疏忽的devloper的一部分。