如何使用 Kotlin 从用户那里获取名称并将其显示在 Toast 中?
How to get a name from the user and display it in a Toast using Kotlin?
我制作了一个自定义对话框,其中包含 EditText
让用户输入他的名字。当用户单击 "SAVE" 我想在 Toast
中显示他的名字。我编写了下面的代码,但是当我单击 "SAVE" 时应用程序一直停止。我想知道错误在哪里?
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()
我制作了一个自定义对话框,其中包含 EditText
让用户输入他的名字。当用户单击 "SAVE" 我想在 Toast
中显示他的名字。我编写了下面的代码,但是当我单击 "SAVE" 时应用程序一直停止。我想知道错误在哪里?
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()