如何使用Toast(kotlin)

如何使用Toast(kotlin)

情境

Toast是一個小型提示訊息的視窗,會顯示在視窗下方的一個小小訊息,不會妨礙使用者進行其他的操作,是一個很常見的工具。

完整程式碼

如果你需要完整程式碼,可以到 GitHub 上觀看或下載。

程式碼+說明

這邊會示範三種操作:

  • 正常顯示訊息的 Toast
  • 可調整位置的 Toast
  • 客製化後的 Toast

一開始我們先設定三個按鈕,當我們按下去的時候,就可以跳出對應的 Toast。

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  xmlns:tools="http://schemas.android.com/tools"  
  android:layout_width="match_parent"  
  android:layout_height="match_parent"  
  tools:context=".MainActivity">  
  
 <Button  android:id="@+id/normal_toast"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"  
  android:text="Normal Toast" />  
 <Button  android:layout_below="@id/normal_toast"  
  android:id="@+id/normal_position_toast"  
  android:text="Position Toast"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"/>  
 <Button  android:layout_below="@id/normal_position_toast"  
  android:id="@+id/custom_toast"  
  android:text="Position Toast"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"/>  
</RelativeLayout>

如下圖所示。

最基本的操作就是顯示一個訊息。

val context = applicationContext  
val text = "Hello toast!"  
val duration = Toast.LENGTH_SHORT  
val toast = Toast.makeText(context, text, duration)  
toast.show()

由上面的程式碼可以看到,單純顯示一個Hello Toast是多麼簡單,只需要告知它訊息跟顯示時間就可以直接使用了。

如下圖所示。

它也可以讓你選擇放置的位置,不一定非得要在下方。

val text = "Hello toast!"  
val duration = Toast.LENGTH_SHORT  
val toast = Toast.makeText(applicationContext, text, duration)  
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0)  
toast.show()

如下圖所示。

你甚至可以透過setView的方法來設定自己布局的畫面。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
 android:id="@+id/custom_toast_container"  
 android:orientation="horizontal"  
 android:layout_width="match_parent"  
 android:layout_height="match_parent"  
 android:padding="8dp"  
 android:background="@android:color/holo_orange_light">  

 <ImageView android:src="@drawable/droid"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"  
  android:layout_marginRight="8dp" />  
 <TextView android:id="@+id/text_view"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"  
  android:textColor="@android:color/black" />  
</LinearLayout>

xml 設定好了以後,就可以顯示在自己自訂的Toast內。

val v = layoutInflater.inflate(R.layout.custom_toast, custom_toast_container, false)  
v.text_view.text = getString(R.string.msg)  
with(Toast(this)) {  
 duration = Toast.LENGTH_LONG  
 view = v  
 show()  
}

如下圖所示。

這樣就是一個簡單的Toast操作了。