訊息顯示後會於數秒內消失,是最常用的提示訊息,使用makeText()產生
Toast.makeText(this, "文字訊息", Toast_LENGTH_SHORT).show()
第一個參數為使用toast的對象,通常填入this關鍵字(即本身的Activity實體)
第二個參數為顯示的文字訊息
第三個參數為持續時間,分成短時間Toast_LENGTH_SHORT與長時間Toast_LENGTH_LONG
//Step1:初始化Toast
val toast = Toast(this)
//Step2:指定Toast的顯示位置
toast.setGravity(Gravity.Top, 0, 50)
//Step3:設定持續時間,用法同makeText的第三個參數
toast.duration = Toast.LENGTH.SHORT
//Step4:放入自定義的畫面(開發者需自行設定Layout檔,並將其指定給Toast的View)
toast.view = layouytInflater.inflate(R.layout.custom_toast, null)
//Step5:透過show()方法將Toast顯示於畫面
toast.show()
Snackbar是因為Google發布的設計準則-Material Design所設計的訊息元件,解決了Toast很多問題(如畫面消失時Toast仍存在),其一次只顯示一個訊息,除了文字訊息外附帶一個回應的按鈕,讓使用者可以進行回應
Snackbar.make(it, "文字訊息", Snackbar.LENGTH_INDEFINITE).setAction("按鈕"){
//此處撰寫按鈕觸發後的程式碼
}.show()
第一個參數為元件對象,當元件對象被銷毀,Snackbar也隨之消失
第二個參數為顯示的訊息字串
第三個參數為持續時間,除了短時間LENGTH_SHORT與長時間LENGTH_LONG,還提供了無限制時間LENGTH_INDEFINITE
若要顯示回應按鈕,可使用setAction方法設定按鈕的文字與監聽器
參數設定後用show的方法將Snackbar顯示於手機螢幕
彈跳視窗,不僅可顯示文字,還可以設定多種不同類型的元件,當開發者需要顯示一則訊息並希望使用者能與其互動,就會選擇AlertDialog
AlertDialog.Builder(this)
.setTitle("這邊是標題")
.setMessage("這邊是彈窗內容")
.setNeturalButton("這是按鈕"){ dialog, whitch ->
//下面寫按鈕被擊中時要做的事情,這裡為顯示按鈕
Toast.makeText(this, "按鈕", Toast_LENGTH_SHORT).show()
}.show()
第一個參數為按鈕顯示名稱,第二個參數為DialogInterface類別中的OnClickListener監聽器。由於正面按鈕、負面按鈕、中立按鈕寫法相同,只是位置不同,因此使用時可自行調整按鈕文字與監聽事件,不用拘泥於方法名稱。
//建立選單上的文字
val item = arrayOf("A","B","C","D","E")
AlertDialog.Builder(this)
.setTitle("這邊是標題")
.setItems(item){dialogInterface, i ->
//顯示被點擊的項目
Toast.makeText(this, "你選的是${item[i]}", Toast_LENGTH_SHORT).show()
}.show()
第一個參數為字串陣列,第二個參數為DialogInterface類別中的OnClickListener監聽器,監聽器的第二個參數會回傳被點擊的項目編號
val item = arrayOf("A","B","C","D","E")
val position = 0
//建立AlertDialog物件
AlertDialog.Builder(this)
.setTitle("這邊是標題")
.setSingleChoiceItem(item, 0){dialogInterface, i ->
//紀錄被按下的位置
position = i
}
.setPositiveButton("確定"){dialog, whitch ->
//顯示被點擊的項目
Toast.makeText(this, "你選的是${item[position]}", Toast_LENGTH_SHORT).show()
}.show()