个性化阅读
专注于IT技术分析

Kotlin Android AlertDialog

Android AlertDialog是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.srcmini02.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()方法。 AlertDialog.Builder的show()方法用于显示警报对话框。

package example.srcmini02.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
Kotlin Android AlertDialog
Kotlin Android AlertDialog
赞(0)
未经允许不得转载:srcmini » Kotlin Android AlertDialog

评论 抢沙发

评论前必须登录!