6.4 使用浮動顯示-Toast類別

Android 提供浮動顯示的元件「android.widget.Toast」Java 類別, 使用 Toast 類別的靜態方法 makeText 方法可以浮動顯示文字,規格如下:

Toast.makeText(Context context, Charsequence text, int duration)

第一個參數為 Context,目前類別 MainActivity 即是一個 Context 物 件,因為 Activity 的上二層父類別就是 Context,因此本類別 MainActivity 即是 Context 的一種,可使用「this」關鍵字代表本類別。第二個參數為 「Charsequence」介面,Java 的 String 類別即是實作了此介面,因此第二個參數即是想要顯示的字串值。最後,第三個參數為浮動顯示的時間長度,1 代表較長的時間停留在畫面上(大概三秒),而 0 代表較短時間,使用範例如下:

Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show()

請注意第三個參數,不要直接使用 1 或 0,應使用 Toast 類別中為其所定義的 LENGTH_LONG 或 LENGTH_SHORT 代表長與短時間的常數,雖然程式碼會比起直接給1或 0 來得長,但能大大增加程式在未來的可讀性。 最後,別忘了呼叫 Toast 類別的 show 方法才會在畫面下方顯示浮動資訊。

在本例先呼叫 bmi 值(Float型態)的 toString() 方法得到轉換後的字串後,即可浮動顯示BMI值, 程式碼如下:

    fun bmi(view: View) {
        val weight = edWeight.text.toString().toFloat()
        val height = edHeight.text.toString().toFloat()
        val bmi = weight / (height*height)
        Log.d("MainActivity", "bmi: ${bmi}")
        Toast.makeText(this, bmi.toString(), Toast.LENGTH_LONG).show()
    }

執行結果如下圖:

使用浮動顯示主要目的是盡量不影響使用者,不需要即時的資訊可以使 用 Toast 類別顯示,但如果有重要資訊需告知使用者,則可使用 AlertDialog 對話框。

Last updated