android - 第二次单击时自定义 AlertDialog 错误
问题描述
这是代码:
class Widgets_TextView : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.widgets_textview)
val inflater = layoutInflater
val dialogView = inflater.inflate(R.layout.customed_dialog, null)
widgets_textview_mainkt.setOnClickListener(View.OnClickListener {
dialogView.findViewById<TextView>(R.id.main_content).setText("AAAA")
val alertDialog = AlertDialog.Builder(this).setView(dialogView)
alertDialog.show()
})
}
}
第一次单击时,它运行良好,但是,当第二次单击时,它会出错。
这是错误:
java.lang.IllegalStateException:指定的孩子已经有一个父母。您必须首先在孩子的父母上调用 removeView()。
我应该怎么办?
解决方案
只需在 setView 末尾添加 create() 即可。您将能够一次又一次地使用相同的对话框。
class Widgets_TextView : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.widgets_textview)
val inflater = layoutInflater
val dialogView = inflater.inflate(R.layout.customed_dialog, null)
val alertDialog = AlertDialog.Builder(this).setView(dialogView).create()
widgets_textview_mainkt.setOnClickListener(View.OnClickListener {
dialogView.findViewById<TextView>(R.id.main_content).setText("AAAA")
alertDialog.show()
})
}
}
推荐阅读
- c# - 我无法访问 IIS 虚拟目录,错误的原因可能是什么?
- go - 当在 aws-sdk-go 中找不到密钥时,GetObject/HeadObject 将永远阻塞
- highcharts - 需要工具提示高图表上两列的总值
- indexing - 如何将操作元组与 set_operazioni 绑定?
- c# - Datagridviewcomboboxcolumn 在加载时显示空白
- javascript - JavaScript .bind mehtod 没有赶上上下文
- batch-file - 你能模拟从批处理文件中点击进入吗?
- r - 将函数应用于列的可变子集
- css - CSS nth-child:nth-child(1n) 究竟选择了什么
- angular - 无法使用 Angular 中 Rxjs 库的过滤器、映射或跳过运算符跳过每一行中的第一个数据值