gpt4 book ai didi

android - 自定义对话框不显示,只是褪色的黑色背景

转载 作者:行者123 更新时间:2023-12-05 06:28:36 24 4
gpt4 key购买 nike

好的,我一直在尝试为带有静态函数的自定义对话框编写一个单独的类,这里是代码

class CustomDialog {
companion object {
fun create(context: Context, content: String) {
context as Activity
val inflater = context.layoutInflater
val view = inflater.inflate(R.layout.dialog_info, null)
val infoDialog = AlertDialog.Builder(context).create()
view.dialog_content.text = content
view.dialog_okButton.setOnClickListener {
println("CLICKED")
infoDialog.dismiss()
}
infoDialog.setContentView(view)

infoDialog.show()
}
}
}

我正在充气的布局是这样的

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/dialog_background"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp">

<TextView
android:id="@+id/dialog_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/iranyekanregular"
android:text="Some text"
android:textColor="@color/white" />

<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="10dp"
android:background="@color/white" />

<Button
android:id="@+id/dialog_okButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/iranyekanregular"
android:gravity="center"
android:clickable="true"
android:focusable="true"
android:text="OK" />
</LinearLayout>

一个简单的 TextView ,一个分隔线和一个关闭对话框的按钮。

但每当我触发按钮显示对话框时,它只会显示褪色的黑屏,而不是对话框本身。如果我使用 setView(view) 而不是 setContentView 它几乎可以 self 显示但因为它只是默认对话框的中间(内容)部分我看到了背景默认对话框和关闭按钮仍然不起作用。任何帮助都感激不尽。顺便说一句,我已经搜索了很多但没有运气。

最佳答案

您忘记将膨胀 View 添加到对话框中。

class CustomDialog {
companion object {
fun create(context: Context, content: String) {
context as Activity
val inflater = context.layoutInflater
val view = inflater.inflate(R.layout.dialog_info, null)
val infoDialogBuilder = AlertDialog.Builder(context)
infoDialogBuilder.setView(view)
val infoDialog = infoDialogBuilder.create()
view.dialog_content.text = content
view.dialog_okButton.setOnClickListener {
println("CLICKED")
infoDialog.dismiss()
}
infoDialog.setContentView(view)

infoDialog.show()
}
}

那是缺少的行:

infoDialogBuilder.setView(view)

关于android - 自定义对话框不显示,只是褪色的黑色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54230428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com