android - 如何使用 Kotlin 从用户那里获取名称并将其显示在 Toast 中?
问题描述
我制作了一个自定义对话框,其中包含一个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()
推荐阅读
- flutter - Flutter RichText 未显示
- javascript - 我想从firestore中检索布尔值我想要的只是一个语法,我可以再次检查复选框从Firestore获取真值
- ios - .navigationBarHidden(true) 不需要的动画效果
- python - 在 Python 中匹配字符串元素(应用函数)
- html - 反应中标签的随机洗牌
- java - 您将如何围绕某个点旋转 3D 数组(Java)
- python - 具有一个 y 轴值的 Matplotlib 数据框在图中未正确显示
- javascript - 在特定日期和时间后使 div id 消失
- ios - 如何调试“LIBPLATFORM 客户端中的错误:尝试递归锁定 os_unfair_lock”崩溃?
- websocket - 如何在应用程序中处理 websockets 数据。在哪里缓冲?