如何以编程方式关闭 Android 中的警报对话框?
AlertDialog 是一个闪光或警报消息,带有允许用户继续或拒绝任何进程或操作的选项。 AlertDialog 通常由主标题、消息和两个按钮组成,技术上称为正按钮和负按钮。正面和负面按钮都可以通过编程来执行各种操作。默认情况下,否定按钮允许关闭 AlertDialog 而无需任何额外的代码行。但是,在肯定按钮的情况下,即使关闭 AlertDialog,也需要编写代码来执行任何操作。
因此,通过本文,我们将向您展示如何通过肯定按钮以编程方式关闭 AlertDialog。 IDE 准备就绪后,请按照以下步骤操作。
分步实施
第 1 步:在 Android Studio 中创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择Kotlin作为主要语言。
第 2 步:使用 activity_main.xml 文件
不会对布局文件进行任何更改,因此我们保持它不变或默认。
XML
Kotlin
package org.geeksforgeeks.programmaticallyclosealertdialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and initializing
// a Builder for the Alert Dialog
val mBuilder = AlertDialog.Builder(this)
.setTitle("TITLE")
.setMessage("MESSAGE")
.setPositiveButton("Positive", null)
.setNegativeButton("Negative", null)
val mAlertDialog = mBuilder.create()
mAlertDialog.show()
// Changing Positive Button properties
// such that something happens on click
val mPositiveButton = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
mPositiveButton.setOnClickListener {
// Programmatically closing the AlertDialog
mAlertDialog.cancel()
Toast.makeText(this, "Exited Alert Dialog", Toast.LENGTH_SHORT).show()
}
}
}
第 3 步:使用MainActivity.kt 文件
转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
package org.geeksforgeeks.programmaticallyclosealertdialog
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and initializing
// a Builder for the Alert Dialog
val mBuilder = AlertDialog.Builder(this)
.setTitle("TITLE")
.setMessage("MESSAGE")
.setPositiveButton("Positive", null)
.setNegativeButton("Negative", null)
val mAlertDialog = mBuilder.create()
mAlertDialog.show()
// Changing Positive Button properties
// such that something happens on click
val mPositiveButton = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
mPositiveButton.setOnClickListener {
// Programmatically closing the AlertDialog
mAlertDialog.cancel()
Toast.makeText(this, "Exited Alert Dialog", Toast.LENGTH_SHORT).show()
}
}
}
输出:
您可以看到,当单击否定按钮时,AlertDialog 默认关闭。单击肯定按钮时,将关闭 AlertDialog ,绕过关闭它的命令。