Androidで簡単にメッセージをユーザーに知らせるために Toast をよく使います。
Android Studio
2024.1.1
2024.1.1
Toast
アメリカではパーティの時に「Toast」と言うのが時々出てきます。乾杯の前に「ジョージの成功を祝って!」などと言う「短い祝辞」のことですね、パンの「トースト」ではありません
~閑話休題~
トーストを使う時は、
1 |
import android.widget.Toast |
をインポートします。
基本的な使い方は、
1 |
Toast.makeText(context, text, duration).show() |
引数のコンテキストとしては、applicationContext を入れます。
具体的に
1 |
Toast.makeText(applicationContext, "トーストメッセージ", Toast.LENGTH_LONG).show() |
LENGTH_LONG の代わりに SHORT にすると表示時間が短くなります。
Toastはレイアウトは決められた場所にしか表示されない
なので、レイアウトの設定も必要ありません
GoogleのサンプルコードなどではSnackbarが良く使われています。
簡単な通知をユーザーに出すには、Toastがありますが、似たようなポップアップ機能として Snackbar があり、こちらが推奨されています...
サンプルコード:
ボタンをタップするとToastが表示されるという使用例です。
Toastには直接関係しませんが、ButtonのためにView Bindingを使っています
MainActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//package com.example.kotlintoast import android.os.Bundle import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.example.kotlintoast.databinding.ActivityMainBinding import android.widget.Toast class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } val toastMessage = R.string.toast binding.button.setOnClickListener{ val toast = Toast.makeText(applicationContext, toastMessage, Toast.LENGTH_LONG) toast.show() } } } |
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/button" android:text="@string/button" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> |
build.gradle (Module: …)
1 2 3 4 5 6 7 8 |
... android { ... buildFeatures { viewBinding = true } } ... |
strings.xml
1 2 3 4 5 |
<resources> <string name="app_name">KotlinToast</string> <string name="button">Button</string> <string name="toast">"トースト"</string> </resources> |
簡単にできました
JavaでToastはこのようになります
ユーザーに「OKですよ」など簡単にメッセージを表示するとユーザービリティが向上しますそんなときは、Toast を使います。
...
References:
Toasts | Android Developers
Toasts