Android studio实现自定义dialog弹窗kotlin,手把手教会你

手把手教会你,如何自定义一个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"/>

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值