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()
}
}
}
输出:
评论前必须登录!
注册