在 Android 中创建包含一些文本的可扩展通知
通知是由手机内的任何应用程序生成的一种消息,建议检查应用程序,这可能是从更新(低优先级通知)到应用程序中出现问题的任何内容(高优先级通知) .基本通知由标题、一行文本以及用户可以执行的一个或多个操作作为响应组成。要提供更多信息,还可以通过应用本文所述的多个通知模板之一来创建大型、可扩展的通知。一些日常生活的例子可能是 Whatsapp、Gmail、SMS 等在通知抽屉中附加的通知,用户可以在其中展开它并可以找到有关收到的消息的一些详细信息,例如发件人姓名、主题和部分文本Gmail 的情况。在本文中,让我们在包含一些文本的应用程序中创建一个通知。
方法
步骤 1:创建一个新项目
要在 android studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。
第二步:修改activity_main.xml文件
在 XML 文件中只需添加一个按钮,单击该按钮将构建一个可展开的通知。通过从通知抽屉展开通知将显示一些文本。
activity_main.xml
MainActivity.kt
package com.example.expandable_notification_bigtext
import android.app.*
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationManagerCompat
class MainActivity : AppCompatActivity() {
// Assigning variables to Notification Manager, Channel and Builder
lateinit var notifManager : NotificationManager
lateinit var notifChannel : NotificationChannel
lateinit var notifBuilder : Notification.Builder
// Evaluating ChannelID and Description for the Custom Notification
private val description = "Some Description"
private val channelID = "Some Channel ID"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring the button which onclick generates a notification
val btn = findViewById
第三步:修改 MainActivity 文件
现在,看看下面的 Kotlin 代码。首先,构建一个包含所有基本内容的通知,如创建通知中所述。然后,使用样式对象调用setStyle()并提供与每个模板对应的信息,如下所示。
MainActivity.kt
package com.example.expandable_notification_bigtext
import android.app.*
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationManagerCompat
class MainActivity : AppCompatActivity() {
// Assigning variables to Notification Manager, Channel and Builder
lateinit var notifManager : NotificationManager
lateinit var notifChannel : NotificationChannel
lateinit var notifBuilder : Notification.Builder
// Evaluating ChannelID and Description for the Custom Notification
private val description = "Some Description"
private val channelID = "Some Channel ID"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring the button which onclick generates a notification
val btn = findViewById
Note: If you have previously searched for the code for expandable notifications, then you must have seen this particular line of code:
“.setStyle(NotificationCompat.BigTextStyle().bigText(message)”
As “NotificationCompat” is currently deprecated and your code would always crash whenever an attempt is made to build a notification (on button click in our case). Instead, just use “Notification”.