手把手教会你,如何自定义一个dialog
实现自定义dialog,需要自己创建一个XXX.kt,还需要自己创建一个xxx.xml,两个文件。
本文为CommonDialog.kt以及commondialog.xml
一.CommonDialog.kt
自己new一个文件
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import com.example.ktscaffold.R
class CommonDialog(context: Context): Dialog(context) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.commondialog)
val btn:Button = findViewById(R.id.btn)
//dialog中的点击事件
btn.setOnClickListener(){
Toast.makeText(context,"点击了",Toast.LENGTH_LONG).show()
//点击后关闭dialog
dismiss()
}
}
}
在dialog弹窗中放了一个button,写了点击事件,弹出一个Toast
2.commondialog.xml
这个也是自己new一个文件,在layout这个包下面
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="200dp"
android:gravity="center"
android:background="@color/black">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"/>
</androidx.appcompat.widget.LinearLayoutCompat>
这个是布局文件,也就是自定义dialog显示的
截图给大家看一下
3.MainActivity.kt
在布局中放一个button,并且拿到控件
val commondialog:Button = findViewById(R.id.commondialog)
设置button点击事件,实现commondialog
//自定义dialog
commondialog.setOnClickListener(){
var dialog = CommonDialog(this)
.show()
}
防止大家看不懂代码应该怎么放,把完整的截图给大家
4.activity_main.xml
这个就比较简单了,放一个button,然后设id就可以了
<Button
android:id="@+id/commondialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自定义dialog"/>