一個爲什麼要使用AlertDialog.Builder
類,而不是直接的方法可用於AlertDialog
, 例如,爲什麼要用AlertDialog.Builder.setCancellable
而非AlertDialog.setCancellable
?當然這是冗餘的情況?AlertDialog VS AlertDialog.Builder
回答
因爲AlertDialog.setCancellable
返回void且AlertDialog.Builder.setCancellable
返回AlertDialog.Builder
。
這意味着該構建器允許您鏈接一些設置,但少一些冗長。這只是一個方便的類
我認爲工廠方法只是更方便。
AlertDialog允許您在活動/片段上方顯示一個對話框。它通常用於提示用戶進行交互,包括幾個按鈕或通知某事。
AlertDialog.Builder是內部靜態類AlertDialog的,它允許您快速建立其方便的方法的對話框。它就像AlertDialog的助手類。它用於調用鏈中的方法。
但是誰幫忙?它的目的只是爲了將所有內容簡化成一個冗長的聲明而不是多個單獨的聲明(設置標題等?)還是以某種方式提供更多功能? – stephenfin 2012-04-04 19:37:43
是的,它爲了方便起見也方便調用鏈中的方法 – waqaslam 2012-04-04 19:38:49
@stephenfin實際上,no-builder類不僅僅是用於鏈接方法調用。他們往往像一個提供合理的默認值和定製選項的工廠。產品('AlertDialog')是不可變的/抽象的,而工廠同行則不是這樣可以極大地簡化創建產品的過程。以「StringBuilder」或「ProcessBuilder」爲例。 – andr 2013-02-04 02:26:19
AlertDialog.Builder
做的屬性,如setTitle()
或setMessage()
的設置,並不顯示給用戶。
AlertDialog
是一個顯示其中已經在AlertDialog.Builder
組的那些屬性。
這兩個提到的地方的目的是,它允許設置與實際顯示,從而使事情方便分開。
- 1. AlertDialog.Builder vs類擴展AlertDialog - 應用程序大小
- 2. AlertDialog VS Spinner vs ListView
- 3. AlertDialog show = new AlertDialog.Builder(this)未定義
- 4. AlertDialog.Builder打開另一個AlertDialog.Builder
- 5. AlertDialog.builder setSelection
- 6. 如何訪問AlertDialog.Builder構建的AlertDialog消息?
- 7. 如何使用ListView創建AlertDialog,而不使用AlertDialog.Builder?
- 8. 如何關閉AlertDialog.Builder?
- 9. 如何擴展AlertDialog.Builder結果?
- 10. AlertDialog內alertdialog安卓
- 11. Android中關閉AlertDialog.Builder
- 12. AlertDialog.Builder項背景顏色
- 13. AlertDialog後的AlertDialog
- 14. AlertDialog.Builder錯誤
- 15. AlertDialog.Builder創建不返回
- 16. AlertDialog.Builder RuntimeException
- 17. java.lang.NoClassDefFoundError在AlertDialog.Builder
- 18. 更改AlertDialog.Builder按鈕顏色
- 19. Android AlertDialog
- 20. 的AlertDialog
- 21. AlertDialog onClickListener
- 22. 如何從AlertDialog.Builder或Equivalent構建AppCompatDialog?
- 23. 擴展AlertDialog.Builder Android中
- 24. AlertDialog.Builder - 分離到另一個類
- 25. 帶有Radiobutton和Spinner的Android AlertDialog.Builder
- 26. 在alertDialog
- 27. Android AlertDialog.Builder和softkeyboard
- 28. AlertDialog.Builder未定義
- 29. AlertDialog.Builder低於19
- 30. AlertDialog.Builder完成()結果NPE
所以它有點像'C++中的istream/ostream運算符?這聽起來很合理 – stephenfin 2012-04-04 19:39:59