繁体   English   中英

如何使用 Kotlin 从用户那里获取名称并将其显示在 Toast 中?

[英]How to get a name from the user and display it in a Toast using Kotlin?

我制作了一个包含EditText的自定义对话框,让用户输入他的名字。 当用户单击“保存”时,我想在Toast显示他的名字。 我做了这个波纹管代码,但是当我点击“保存”时应用程序一直停止。 我想知道错误在哪里?

change_name.setOnClickListener {
    val builder = AlertDialog.Builder(this)
    val inflater =  LayoutInflater.from(this).inflate(R.layout.dialog_name,null,false)
    builder.setView(inflater)
    builder.setPositiveButton("SAVE") { dialog, id ->
        val name = entered_name.text.toString()
        Toast.makeText(this,name,Toast.LENGTH_LONG).show()
    }

    builder.create().show()
}

Omar 欢迎来到SO社区。

在您的代码中,您正在做的是创建一个自定义对话框并调用该对话框提供的正面按钮onClick我确定您的代码在这行代码处崩溃

val name = entered_name.text.toString()

因为它没有直接得到你的EditText的合成属性。

您需要稍微修改一下代码。

val builder = AlertDialog.Builder(this)
val inflater =  LayoutInflater.from(this).inflate(R.layout.dialog_name,null,false)
builder.setView(inflater)
val yourEditText :EditText = inflater.findViewById(R.id.entered_name)
builder.setPositiveButton("SAVE") { dialog, id ->
    val name = yourEditText.text.toString()
    Toast.makeText(this,name,Toast.LENGTH_LONG).show()
}

builder.create().show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM