android - 无法在Kotlin中初始化对话框中的按钮

标签 android kotlin

我有一个带有AlertDiaolog的Floating Action Button侦听器。我想使用XML中的按钮。如果我想为他们写一个onClickListener()

所以在Java中,我必须像这样初始化它:

butAdd = (Button)dialog.findViewById(R.id.btn_add)
butAdd.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //Some code
    }

但是当我尝试使用时:
var butAdd = dialog?.findViewById(R.id.btn_add) as Button;

在 Kotlin 这是不正确的

那么有什么建议如何解决呢?听众有什么问题?

这是我的 float 操作按钮代码:
fab?.setOnClickListener {
    diaolg = AlertDialog.Builder(this@Cards)
    val linearlayout = getLayoutInflater().inflate(R.layout.add_password, null)
    diaolg?.setView(linearlayout)
    ?.setTitle("Add a new password")
    ?.setCancelable(true)

    var login = findViewById(R.id.login) as EditText
    var password = findViewById(R.id.password) as EditText
    var title = findViewById(R.id.title) as EditText

    var butAdd = diaolg?.findViewById(R.id.btn_add) as Button
    var butCancel = diaolg?.findViewById(R.id.btn_cancel) as Button

    butAdd.setOnClickListener(View.OnClickListener {
        fun onClick(v:View){
        }
    })
    butCancel.setOnClickListener(View.OnClickListener {
        fun onClick(v:View){
        }
    })
    diaolg?.create()
    diaolg?.show()
}

最佳答案

请使用找到ID

             var butAdd = linearlayout.findViewById<Button>(R.id.btn_add) as Button;

关于android - 无法在Kotlin中初始化对话框中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348671/

相关文章:

java - 在 Android 上混合 guice 和 scala 时得到 "failure in processEncodedAnnotation"

java - 从 Java 调用 Kotlin — 错误 : package demo does not exist

android - 仅在整数主键上允许自动增量 - android

android - 我如何制作像 Skype 应用程序这样的介绍性标识动画?

android - 如何从 dialogfragment 获取日期选择器属性

android - 如何使用实时导航在 Kotlin 的 Google map 上绘制最短路径?

android - 在 android 11 中使用 intent.resolveActivity 时调用此方法时,请考虑在 list 中添加查询声明

android - 无法解析 GoogleSignInClient

android - 如何设置 Kotlin 版本

android - 如何修复 "' dexOptions(Action<DexOptions>) : Unit' is deprecated. 设置 dexOptions 已过时。”?