【发布时间】:2018-07-08 04:46:34
【问题描述】:
这是 MainActivity onCreate 方法中的 AlertDialog:
import kotlinx.android.synthetic.main.dialog.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fab.setOnClickListener { view ->
AlertDialog.Builder(this@MainActivity)
.setView(LayoutInflater.from(this@MainActivity).inflate(R.layout.dialog, null))
.setPositiveButton("OK") {dialog, i ->
Toast.makeText(
this@MainActivity, dialogEditText.text, Toast.LENGTH_SHORT)
.show()
dialog.dismiss()
}.show()
}
}
}
这是对话框布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/dialogEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</EditText>
</RelativeLayout>
但是,最后,我得到了这个错误:
java.lang.IllegalStateException: dialogEditText 不能为空
但是我填写了输入...这里有什么问题?
【问题讨论】:
-
dialogEditText.text 消息为空
-
尝试添加其他消息。
-
发布你的 oncreate
-
我用完整的 onCreate 编辑了代码。在这种情况下,文本属性无关紧要,当我添加时我也得到了 null。
-
我认为,代码在 activity_main 上下文中寻找
dialogEditText。
标签: android android-edittext kotlin android-alertdialog kotlin-extension