Kotlin 在对话框中检索视图
我试图在对话框中操作视图,但检索视图的唯一方法是使用Java老式方法,如下所示:Kotlin 在对话框中检索视图,kotlin,findviewbyid,Kotlin,Findviewbyid,我试图在对话框中操作视图,但检索视图的唯一方法是使用Java老式方法,如下所示: class MyDialog: DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val alert = AlertDialog.Builder(context!!) val inflater = LayoutInflater.f
class MyDialog: DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val alert = AlertDialog.Builder(context!!)
val inflater = LayoutInflater.from(activity)
val view = inflater?.inflate(R.layout.pg_dialog, null)
with(alert) {
setView(view)
setNeutralButton(R.string.scambio_back, DialogInterface.OnClickListener({ _: DialogInterface, _: Int -> dialog.dismiss() }))
}
view?.findViewById<TextView>(R.id.dialog_name)?.text = person.name
view?.findViewById<TextView>(R.id.dialog_surname)?.text = person.surname
return alert.create()
}
}
因为你的问题有点不清楚,我想说你指的是这样做: 在你的
build.gradle中导入应用插件:'kotlin android extensions
然后您必须将其导入您的活动
import kotlinx.android.synthetic.main.activity_pg_dialog.*
例如,如果您有一个id为test
的TextView
,您可以执行以下操作:
test.setText("test text!!")
参考资料:
在这种情况下,当您不在片段或活动中,但有一个视图
引用,希望搜索具有给定ID的子对象时,可以使用Kotlin Android扩展,语法如下:
view.dialog_name.text = person.name
view.dialog_surname.text = person.surname
与使用扩展时一样,请确保导入正确。是否使用Kotlin Android扩展在其他地方进行视图查找?这就是您要做的吗?我使用kotlin扩展,是的,请参阅我的另一个相关问题的答案:您的解决方案确实可以编译,但dialog_name为null并抛出IllegalStateException。我导入了kotlinx.android.synthetic.main.pg_dialog.*并且抛出的行异常是dialog_name.text=person.name我确实使用扩展名,但是找不到view.dialog_名称,尽管导入了kotlinx.android.synthetic.main.pg_dialog.*你能发布你的build.gradle
文件吗?可能配置不正确。谢谢您的回答。仅用一个示例进一步说明如何获取视图:val alertDialog=alertDialogBuilderUserInput.create()alertDialog.show()alertDialog.etName.setText(“a”)
view.dialog_name.text = person.name
view.dialog_surname.text = person.surname