■ はじめに
ダイアログではないかもしれないけど、 ユーザ通知という観点から、Notification(通知)を実装してみる
■ サンプル
import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.content.Context import android.os.Build import android.os.Bundle import androidx.core.app.NotificationCompat import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { this.notify( "通知内容", "タイトル", "サブテキスト", "右端") } } @Suppress("DEPRECATION") fun notify( content: String, title: String, subText: String, contentInfo: String) { // カテゴリー名(通知設定画面に表示される情報) val notifyName = getString(R.string.app_name) // システムに登録するChannel ID val channelId = getString(R.string.app_name) // 通知の詳細情報(通知設定画面に表示される情報) val notifyDescription = "Hello World!" // ICon val icon = R.drawable.ic_menu_info_details // Notification ID val notificationId = 1 val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // APIが「26」以降の場合 if (notificationManager.getNotificationChannel(channelId) == null) { val channel = NotificationChannel( channelId, notifyName, NotificationManager.IMPORTANCE_HIGH) channel.apply { description = notifyDescription } notificationManager.createNotificationChannel(channel) } val notification = NotificationCompat .Builder(this, channelId) .apply { setSmallIcon(icon) setContentTitle(title) setContentText(content) setSubText(subText) setContentInfo(contentInfo) }.build() notificationManager.notify(notificationId, notification) } else { // APIが「25」以下の場合 val notification = Notification.Builder(this) .setContentTitle(title) .setContentText(content) .setSubText(subText) .setContentInfo(contentInfo) .setSmallIcon(icon) .build() notificationManager.notify(notificationId, notification) } } }
参考文献
https://android-java.hatenablog.jp/entry/2019/02/19/214301
https://qiita.com/naoi/items/367fc23e55292c50d459
https://qiita.com/roga7zl/items/4c9e1b62db1b427a9226
https://qiita.com/SnowMonkey/items/7cdc52c83bb9490d97a5
関連記事
ダイアログ表示 ~ 入門編 / トースト・Toast ~
https://dk521123.hatenablog.com/entry/2013/10/14/002656
ダイアログ表示 ~ 基本編 / YES/NO/CANCELボタン ~
https://dk521123.hatenablog.com/entry/2013/10/06/122942
ダイアログ表示 ~ 基本編 / リスト選択 ~
https://dk521123.hatenablog.com/entry/2013/10/07/005850
ダイアログ表示 ~ 基本編 / チェックボックス・ラジオボタン ~
https://dk521123.hatenablog.com/entry/2013/10/09/001500
ダイアログ表示 ~ 基本編 / チェックボックス・ラジオボタン ~
https://dk521123.hatenablog.com/entry/2013/10/09/001500
ダイアログ表示 ~ 基本編 / 日付・時間ダイアログ ~
https://dk521123.hatenablog.com/entry/2020/07/26/000000
アラーム機能を実装するには
https://dk521123.hatenablog.com/entry/2020/07/14/000000
Kotlin / Realm で英単語帳を作る
https://dk521123.hatenablog.com/entry/2020/07/20/232009