📌  相关文章
📜  如何以编程方式关闭 Android 中的警报对话框?

📅  最后修改于: 2022-05-13 01:54:49.345000             🧑  作者: Mango

如何以编程方式关闭 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 ,绕过关闭它的命令。