📌  相关文章
📜  如何防止警报对话框在 Android 中关闭?

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

如何防止警报对话框在 Android 中关闭?

在 Android 中,AlertDialog 是一个简单的警报消息,以弹出窗口的形式出现,由标题、消息和两个按钮(即正按钮和负按钮)组成。用户基本上必须单击两个按钮之一才能回复 AlertDialog 中的消息。否定按钮通常标题为“取消”或“否”或“继续”,而肯定按钮是一些肯定的文本。这是因为默认情况下,否定按钮仅具有退出 AlertDialog 并且不执行任何操作的功能,而正按钮将被编程用于执行任何操作甚至退出 AlertDialog。

防止警报对话框在 Android 中关闭

因此,在本文中,我们将向您展示如何防止在 Android 中退出或关闭 AlertDialog。 IDE 准备就绪后,请按照以下步骤操作。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择Kotlin作为主要语言。

第 2 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。保持布局文件不变或默认,因为我们不需要或添加任何新元素。

XML


  
    
  


Kotlin
package org.geeksforgeeks.preventdialogfromclosing
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
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)
            .show()
  
        // Changing Positive Button properties such
        // that something happens on click
        val mPositiveButton = mBuilder.getButton(AlertDialog.BUTTON_POSITIVE)
        mPositiveButton.setOnClickListener {
            // Do something
            // As we do not want the Alert Dialog to close, 
            // we will only display a Toast and do nothing else.
            Toast.makeText(this, "Can't Exit", Toast.LENGTH_SHORT).show()
        }
  
    }
}


第 3 步:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

科特林

package org.geeksforgeeks.preventdialogfromclosing
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
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)
            .show()
  
        // Changing Positive Button properties such
        // that something happens on click
        val mPositiveButton = mBuilder.getButton(AlertDialog.BUTTON_POSITIVE)
        mPositiveButton.setOnClickListener {
            // Do something
            // As we do not want the Alert Dialog to close, 
            // we will only display a Toast and do nothing else.
            Toast.makeText(this, "Can't Exit", Toast.LENGTH_SHORT).show()
        }
  
    }
}

输出:

您可以看到,当单击肯定按钮时,AlertDialog 没有关闭。