Dialog加载XML时机:onCreate

1、使用setContentView

class MyCustomDialog(context: Context) : Dialog(context) {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // 加载 XML 布局
        setContentView(R.layout.dialog_layout)
        
        // 初始化控件
        val button: Button = findViewById(R.id.dialogButton)
        button.setOnClickListener {
            // 按钮点击事件
            dismiss() // 关闭对话框
        }
    }
}

2、使用View Binding

class MyCustomDialog(context: Context) : Dialog(context) {
    private lateinit var binding: DialogCustomBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // 加载 XML 布局并获取绑定对象
        binding = DialogCustomBinding.inflate(layoutInflater)
        setContentView(binding.root)

        // 初始化控件
        binding.dialogButton.setOnClickListener {
            // 按钮点击事件
            dismiss() // 关闭对话框
        }
    }
}

3、使用Data Binding

class MyCustomDialog(context: Context) : Dialog(context) {
    private lateinit var binding: DialogCustomBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // 使用 Data Binding 加载 XML 布局
        binding = DataBindingUtil.inflate(layoutInflater, R.layout.dialog_custom, null, false)
        setContentView(binding.root)

        // 初始化控件
        binding.dialogButton.setOnClickListener {
            // 按钮点击事件
            dismiss() // 关闭对话框
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容