Kotlin Android AlertDialog — диалоговые окна

Android AlertDialog в Kotlin является подклассом класса Dialog и используется, чтобы предложить небольшому диалоговому окну принять решение, прежде чем пользователь сможет продолжить ту же операцию, не меняя экрана. В диалоговом окне отображается заголовок, сообщение, до трех кнопок или пользовательский макет.

Экземпляр класса AlertDialog.Builder используется для создания диалогового окна предупреждения. Через диалог предупреждений мы принимаем положительное (да), отрицательное( нет) и нейтральное (отмена) решение.

Пример Kotlin Android AlertDialog

В этом примере мы вызываем диалоговое окно предупреждения, нажимая кнопку. В диалоговом окне задаются три действия по принятию решения: положительное, отрицательное и нейтральное.

Activity_main.xml

Добавьте следующий код в файл activity_main.xml. В этом файле макета мы добавляем кнопку для вызова диалогового окна предупреждения.

<?xml version="1.0" encoding="utf-8"?>  
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:app="http://schemas.android.com/apk/res-auto"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context="example.javatpoint.com.kotlinalertdialog.MainActivity">  
  
    <Button  
        android:id="@+id/button"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginBottom="8dp"  
        android:layout_marginEnd="8dp"  
        android:layout_marginStart="8dp"  
        android:layout_marginTop="8dp"  
        android:text="@string/button"  
        app:layout_constraintBottom_toBottomOf="parent"  
        app:layout_constraintEnd_toEndOf="parent"  
        app:layout_constraintStart_toStartOf="parent"  
        app:layout_constraintTop_toTopOf="parent" />  
  
</android.support.constraint.ConstraintLayout>

strings.xml

В файл strings.xml добавьте следующий код.

<resources>  
    <string name="app_name">Kotlin AlertDialog</string>  
    <string name="button">click button</string>  
    <string name="dialogTitle">Delete File</string>  
    <string name="dialogMessage">Deleting file may be harm your system</string>  
  
</resources>

MainActivity.kt

Добавьте следующий код в класс MainActivity.kt. Экземпляр класса AlertDialog.Builder вызывает методы setTitle(), setMessage(), setIcon() для установки заголовка диалогового окна, сообщения и значка соответственно.

Чтобы установить действие в диалоговом окне предупреждения, вызовите методы setPositiveButton(), setNeutralButton() и setNegativeButton() для положительного, нейтрального и отрицательного действия соответственно. Метод show() объекта AlertDialog.Builder в Котлин используется для отображения диалогового окна предупреждения.

 
package example.javatpoint.com.kotlinalertdialog  
  
import android.support.v7.app.AppCompatActivity  
import android.os.Bundle  
import android.support.v7.app.AlertDialog  
import android.widget.Button  
import android.widget.Toast  
  
class MainActivity : AppCompatActivity() {  
  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
  
        val button = findViewById<Button>(R.id.button)  
  
        button.setOnClickListener {  
            val builder = AlertDialog.Builder(this)  
            //set title for alert dialog  
            builder.setTitle(R.string.dialogTitle)  
            //set message for alert dialog  
            builder.setMessage(R.string.dialogMessage)  
            builder.setIcon(android.R.drawable.ic_dialog_alert)  
  
            //performing positive action  
            builder.setPositiveButton("Yes"){dialogInterface, which ->  
                Toast.makeText(applicationContext,"clicked yes",Toast.LENGTH_LONG).show()  
            }  
            //performing cancel action  
            builder.setNeutralButton("Cancel"){dialogInterface , which ->  
                Toast.makeText(applicationContext,"clicked cancel\n operation cancel",Toast.LENGTH_LONG).show()  
            }  
            //performing negative action  
            builder.setNegativeButton("No"){dialogInterface, which ->  
                Toast.makeText(applicationContext,"clicked No",Toast.LENGTH_LONG).show()  
            }  
            // Create the AlertDialog  
            val alertDialog: AlertDialog = builder.create()  
            // Set other dialog properties  
            alertDialog.setCancelable(false)  
            alertDialog.show()  
        }  
    }  
}

Выход:

Kotlin Android AlertDialogУдаленный файл

Вывод

Оцените статью