有關Dialog類的相關資訊【對話方塊的介紹】
對話方塊在程式中不是必備的,但是用好對話方塊能對我們編寫的應用增色不少。採用對話方塊可以大大增加應用的友好性。比較常用的背景是:使用者登陸、網路正在下載、下載成功或者失敗的提示,還有,比如:簡訊來了、電池沒電了等等,只要你想到的,能提高使用者體驗的,你都可以使用對話方塊。
首先,請大家找到文件,在右上角的搜尋框中輸入Dialog,根據提示,選擇app.dialog。大家可以先閱讀一下英文文件,大體先看看,繼承於哪個類,有哪些子類等等,這對於知識的積累相當重要。不是很難,如果你覺得讀不懂,可以藉助有道詞典。我一直覺得,如果沒有中國這麼龐大的市場,不可能發展這麼快,可是他們為什麼就不出中文文件呢,反而出日語的文件,想不通。強烈建議他們儘快出中文的文件。
什麼是Dialog
Dialog類,是一切對話方塊的基類,需要注意的是,Dialog類雖然可以在介面上顯示,但是並非繼承於View類,而是直接從java.lang.Object開始構造出的。類似於Activity,Dialog也是有生命週期的,它的生命週期由Activity來維護。Activity負責生成、儲存、恢復它。在生命週期的每一個階段都有一些回撥函式供系統反向呼叫。
ShowDialog(int id):負責顯示標示為id的Dialog,這個函式如果呼叫後,系統將反向呼叫Dialog的回撥函式onCreateDialog(int id);
dismissDialog(int id):使標示為id的Dialog在介面當中消。
Dialog有兩個比較常見的回撥函式,onCreateDialog(int id)和onPrepareDialog(int id,Dialog dialog)。如果Activity呼叫了showDialog(int id)後,如果這個Dialog是第一次生成,系統將反向呼叫Dialog的回撥函式onCreateDialog(int id),再呼叫onPrepareDialog(int id ,Dialog dialog),如果這個Dialog還沒有生成,只不過還沒有顯示出來,那麼將不會回撥onCreateDialog(int id),而是直接回撥onPrepareDialog(int id,Dialog dialog)方法。onPrepareDialog(int id,Dialog dialog)方法提供了這樣一套機制,當Dialog生成但是沒有顯示出來的時候,使得有機會在顯示前對Dialog做一些修改,如對Dialog標題進行修改。
什麼是AlertDialog?什麼是AlertDialog.Builder?
AlertDialog是Dialog的一個直接子類,一個AlertDialog可以有兩個Button或者3個Button,可以對一個AlertDialog設定title、message。不能直接透過AlertDialog的建構函式來生成一個AlertDialog,一般生成的時候都是透過它的的一個內部靜態類AlertDialog.Builder來構造的。
下面才是我寫這篇文章的用意,在對話方塊中實現自定義檢視,來提升使用者體驗。
給Dialog設定個性化的View(我翻譯為檢視)
系統中提供的太死板了,我們總是會有很多新奇的想法,那麼如何實現給一個Dialog自定義一個佈局呢?我們要用到LayoutInFlater,透過這個類的inflate方法,可以將一個XML的佈局變成一個View例項。這種用法,我們會經常用到,所以務必學會。然後,我們透過builder.setView(myownview)這個語句,就可以將個性化的檢視放到Dialog裡邊去。當然,你可以傳入任何的檢視物件,比如圖片框,WebView等,盡情發揮你的想象力吧。
進度條Dialog:ProgressDialog
顧名思義,這個Dialog負責給使用者顯示進度的相關情況,它是AlertDialog的一個子類,在我的示例程式碼中,我是實現預設的進度顯示。當然可以配置自己的進度條。同時有一點,提醒大家要注意,ProgressDialog不需要Builder這個內部靜態類進行構造,而是直接使用建構函式進行構造。
其實在當中還提供了很多Dialog,如CharacterPickerDialog/TimePickerDialog/DatePickerDialog等,但是都不是很常用。
Toast是Android中用來顯示顯示資訊的一種機制,和Dialog不一樣的是,Toast是沒有焦點的,而且Toast顯示的時間有限,過一定的時間就會自動消失。下面用一個例項來看看如何使用Toast。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2816084/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Dialog對話方塊
- Flutter Widgets 對話方塊-DialogFlutter
- VUE:點選開啟的對話方塊外面時,對話方塊總是被關閉Vue
- Flutter 23: 圖解自定義 Dialog 對話方塊Flutter圖解
- Element-Ui元件(三十八)Dialog 對話方塊UI元件
- Drupal建站的相關介紹
- camunda相關資料介紹
- C/C++ Qt Dialog 對話方塊元件應用C++QT元件
- Nginx 相關介紹Nginx
- 設計模式的相關介紹設計模式
- C++ Qt開發:標準Dialog對話方塊元件C++QT元件
- C++ Qt開發:自定義Dialog對話方塊元件C++QT元件
- C/C++ Qt 自定義Dialog對話方塊元件應用C++QT元件
- Python之set集合的相關介紹Python
- Python之函式的相關介紹Python函式
- 訊息對話方塊 confirm() prompt()
- weex-toolkit工具的相關命令介紹
- RTSP 流相關工具介紹
- React中的模式對話方塊React模式
- MyBatis框架的使用解析!資料庫相關API的基本介紹MyBatis框架資料庫API
- UML類圖介紹&類的六大關係
- c#—OpenFileDialog(開啟檔案對話方塊)和new關鍵字的用法C#
- Go gRPC 系列一:相關介紹GoRPC
- Android多渠道打包相關介紹Android
- 有關oracle ebs中:Dialog的做法(1)Oracle
- 區塊鏈相關的關鍵概念區塊鏈
- 登入對話方塊
- 規定對話方塊
- 郵件安全相關開源軟體的介紹
- 關於程式碼簽名證書種類的介紹及對比
- 阿里分散式資料庫服務相關介紹阿里分散式資料庫
- python之pymsql模組相關介紹PythonSQL
- Python之logging模組相關介紹Python
- spark相關介紹-提取hive表(一)SparkHive
- JavaFX 如何使用內建的對話方塊Java
- Html 5.2 的簡單介紹及新增元素 <dialog></dialog>HTML
- win10安裝軟體彈出的那個對話方塊怎麼關掉Win10
- [WPF]動手寫一個簡單的訊息對話方塊