Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/174.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 在对话框中检索视图_Kotlin_Findviewbyid - Fatal编程技术网

Kotlin 在对话框中检索视图

Kotlin 在对话框中检索视图,kotlin,findviewbyid,Kotlin,Findviewbyid,我试图在对话框中操作视图,但检索视图的唯一方法是使用Java老式方法,如下所示: class MyDialog: DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val alert = AlertDialog.Builder(context!!) val inflater = LayoutInflater.f

我试图在对话框中操作视图,但检索视图的唯一方法是使用Java老式方法,如下所示:

 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