<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁 > 空調 >

    高效學習Android項目開發 | AlertDialog對話框(附視頻限免)

    介紹AlertDialog對話框從簡到繁的多種設計方案,從新角度理解UI交互設計。

    AlertDialog對話框允許自定義彈出對話框的內容,實現比之前講解的幾種對話框更豐富的功能。

    01

    帶默認按鈕的AlertDialog

    程序單擊按鈕后執行第17行代碼,調用自定義方法showAlertDialog。

    第22~62行是自定義showAlertDialog方法。調用AlertDialog的順序是先定義Builder;對Builder調用相關方法設定屬性;定義默認按鈕及單擊監聽器;調用Builder的create方法生成AlertDialog;最后調用AlertDialog的show方法顯示對話框。

    第24行初始化builder,此時builder擁有AlertDialog對話框的默認主題。

    第25行調用setTitle方法設置對話框的標題。

    第26行調用setMessage方法設置對話框的提示信息。

    第27行調用setIcon方法設置對話框圖標。

    第30~37行添加PositiveButton按鈕,其中setPositiveButton方法的第一個參數是按鈕的顯示文本。為了便于閱讀代碼,此按鈕文本盡量采用確定語氣的文字,如“是”“確定”等。第二個參數是按鈕的單擊監聽器。單擊此按鈕將自動關閉對話框,同時執行第35行代碼,在文本輸入框editText1中顯示信息。變量which是PositiveButton按鈕的int型返回值。

    第40~57行以同樣的方式設置“取消”和“中間”按鈕。不同的Android版本3個按鈕的外觀和位置會有差異。每個對話框可以設置1~3個對話框默認按鈕,也可以不設置按鈕。

    第58行的作用是單擊對話框以外的區域,對話框仍然顯示在最上層。默認值為true,單擊對話框以外的區域,對話框將被遮擋。

    第59行調用builder的create方法生成alertDialog1對話框。

    第60行調用alertDialog1的show方法顯示對話框。

    帶默認按鈕的AlertDialog運行結果如圖4-84和圖4-85所示。

    圖4-84彈出帶默認按鈕的AlertDialog

    圖4-85返回對話框按鈕信息

    02

    列表的AlertDialog

    AlertDialog除了默認主題的對話框形式外,還支持多種類型的對話框。本案例講解列表風格的AlertDialog。

    本案例的大多數代碼與4.24.1節案例的代碼類似,不同點在第29行,setItems方法將對話框設置為選項列表風格。第一個參數是用于填充下拉選項列表的字符串數組str,str數組在第4行定義。第二個參數為單擊監聽器,處理單擊選項后的觸發事件。

    第34行的OnClick方法以變量which(單擊選項列表返回的選中項索引值)為字符串數組str的索引,獲取對應選中列表中的文本,并將其傳遞給editText1。

    列表風格的AlertDialog運行結果如圖4-86和圖4-87所示。

    圖4-86彈出列表風格的AlertDialog

    圖4-87返回列表風格的AlertDialog的選擇信息

    03

    單選的AlertDialog

    單選的AlertDialog是指彈出的對話框顯示單選按鈕風格的AlertDialog。

    第4行定義用于單選列表的字符串數組str。

    第5行的變量num用于記錄單選風格對話框中選中項的索引值。

    關鍵代碼在第31行,setSingleChoiceItems方法將對話框設置為單選按鈕風格。其中第二個參數checkedItem是設置單選按鈕列表選中項的索引值,如果是-1則所有單選按鈕都設置為未選。

    第34行的變量which是單選按鈕列表的索引值,也是選中項對應字符串數組str的索引值。

    第45行的變量which是AlertDialog對話框中按鈕被單擊時返回按鈕所對應的int型數值,與第34行的which含義是不同的。

    如果去掉第38行的注釋,在彈出的對話框中選中單選項后,cancel方法將關閉對話框而無須再單擊“確定”按鈕,也就不會執行第42~50行的代碼。

    單選的AlertDialog運行結果如圖4-88所示。

    圖4-88單選的AlertDialog運行結果

    04

    復選的AlertDialog

    復選的AlertDialog是指彈出的對話框顯示復選框風格的AlertDialog。

    第4行定義用于復選框列表的字符串數組str。

    第5行的布爾型數組flags定義了str數組在復選框列表中的選中狀態,true為選中。flags數組的長度應與str數組長度相同。如果flags數組長度小于str數組長度,程序運行到第30行綁定兩個數組到builder時會出錯。如果flags數組長度大于str數組長度,程序運行到第45行取flags數組的長度,執行到第48行可能會因數組索引超出str數組范圍而出錯,只要將第45行的flags.length改成str.length程序就能正常運行。

    第30行的setMultiChoiceItems方法將AlertDialog設置為復選框列表。

    第35行將復選項的變動值(true或false)同步到flags數組的對應項。

    第45行使用for循環遍歷數組flags,狀態為true的索引項返回str數組的對應值。

    第50行將對話框的返回結果傳遞給editText1。

    第53~54行調用builder的create方法生成alertDialog1,再調用show方法顯示對話框。

    05

    自定義控件

    目前為止已經介紹了多種對話框,這些對話框的內置控件都是定制好的。本案例講解自定義對話框中的控件。為便于講解,對話框中的控件只加入EditText和Button,讀者理解設計方式后可自行添加所需控件。

    第17~19行通過自定義showAlertDialog方法的不同參數調用不同形式的自定義對話框。

    當參數為10時執行第29行開始的代碼,實現動態添加控件,常用于對布局要求不高的場景。第30行使用EditText的構造方法生成一個文本輸入框editTextName。第31行將生成的editTextName文本輸入框添加到builder中。第32行添加對話框的標題。第33行添加“確定”按鈕,按鈕的單擊監聽器將對話框中的editTextName內容傳回main.xml布局文件中的editText1中。

    當參數為20時執行第42行開始的代碼。此時調用已經設計好的布局文件login.xml。第43行聲明LayoutInflater類型的變量inflater20。第44行使用inflate方法將login.xml中名為linearLayoutLogin的線性布局作為View填充到viewLogin20。第45行是將builder的一系列方法放在一行中連續調用。相關按鈕的監聽器都設置為null,單擊這些按鈕就只能執行默認的關閉對話框操作。

    當參數為30時執行第47行開始的代碼,是對方法一的完善,可以返回文本輸入框中的文字內容。實現的方式是重寫按鈕單擊監聽器代碼。在第57行的findViewById方法前加了viewLogin30限定。第49行viewLogin30對應的是login.xml布局文件的linearLayoutLogin。如果沒有viewLogin30前綴,查找R.id.editTextName從main.xml中查詢,找不到程序就會出錯退出。如果兩個文件中控件重名,沒有viewLogin30前綴的findViewById方法取回的就是main.xml布局文件中的控件。

    帶自定義控件AlertDialog運行結果如圖4-89和圖4-90所示。

    圖4-89彈出帶自定義控件AlertDialog

    圖4-90返回帶自定義控件AlertDialog信息

    【注】

    Spinner、AutoCompleteTextView和AlertDialog都支持類似的彈出框功能,使用時注意各自的優缺點和使用場景。

    實例講解

    Android項目開發基礎與實戰

    精彩回顧

    教學輔助系統使用

    Android項目開發相關Java基本概念

    約束布局

    TextView控件

    Button控件

    RadioButton控件

    精彩預告

    Activity

    Broadcast

    數據庫調試

    ?

    06

    視頻講解

    掃碼即可觀看視頻,限時免費3天

    07

    參考書籍

    《Android項目開發基礎與實戰(微課視頻版)》

    作者:夏江

    定價:59.9元

    內容簡介

    本書結合作者多年講授“Android應用軟件開發”課程的教學經驗,融入Android開發領域新技術,較為全面地介紹了Android應用軟件開發的相關知識點和開發技巧。全書共分5章,分別介紹了Android開發環境、Android項目及Java基本概念、Android常用布局、Android常用控件和其他常用編程技術。本書相關案例以Android Studio為開發環境,盡可能使用最新版本SDK命令替代棄用命令,并對控件的版本變化做大致的介紹。本書全面考慮了本科教學的特點,結合作者開發的案例庫教學輔助系統,通過精心設計的案例和詳盡的講解、演示,讓讀者感受體驗式教學的魅力。本書適合Android Studio開發人員、Android的入門讀者、高等學校學生使用,還可以作為高等院校、相關培訓機構的教學用書。

    08

    精彩推薦

    微信小程序游戲開發│猜數字小游戲(附源碼+視頻)

    Flink編程基礎│Scala編程初級實踐

    Flink編程基礎│FlinkCEP編程實踐

    Flink編程基礎│DataStream API編程實踐

    Flink編程基礎│DataSet API編程實踐

    數 據分析實戰│客戶價值分析

    數據分析實戰│價格預測挑戰

    數據分析實戰│時間序列預測

    數據分析實戰│KaggleTitanic生存預測

    責任編輯:Rex_08

    關鍵詞: Android
    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 中文国产日韩欧美视频| 伊人色综合视频一区二区三区| 国产91po在线观看免费观看 | 亚洲人jizz| 一本色道久久88—综合亚洲精品 | 巨胸喷奶水视频www免费视频| 国产精品无码久久久久久久久久| 又大又硬又爽免费视频| 中文字幕在线观看亚洲| 老鸭窝在线免费视频| 扫出来是很污的二维码2021| 国产成人综合久久| 久久青青草原国产精品免费| 成人羞羞视频国产| 清冷受被放置play分腿器| 在线中文字幕网站| 冬月枫亚洲高清在线观看| 一区二区三区国模大胆| 色香蕉在线观看| 手机在线观看你懂的| 公车校花小柔h| av无码免费一区二区三区| 老司机在线精品视频| 日韩综合在线视频| 国产精品无码不卡一区二区三区| 亚洲天堂福利视频| 99re热在线观看| 男女性潮高清免费网站| 放荡的女按摩师2| 免费黄色欧美视频| 中文在线天堂网www| 精品亚洲一区二区| 成人a毛片视频免费看| 免费人成在线观看69式小视频 | 老鸭窝laoyawo国产精品| 好日子在线观看视频大全免费| 国产V亚洲V天堂A无码| аⅴ资源中文在线天堂| 波多野结衣与黑人| 在线精品91青草国产在线观看| 亚洲国产av高清无码|