Olá Tudo bem ?
Recentemente, implementei a parte da aula que salva imagem no diálogo. Na primeira abertura, tudo funciona corretamente, mas ao fechar e tentar abrir novamente, ocorre um crash com o seguinte erro: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Já pesquisei no Stack Overflow e tentei diversas soluções, como mover a criação e a instância do diálogo para fora do botão e colocar o create(), mas sem sucesso.
Gostaria de solicitar sua ajuda com o código abaixo, por favor:
class FormularioProdutoActivity : AppCompatActivity() {
private val binding by lazy {
ActivityFormularioProdutoBinding.inflate(layoutInflater)
}
private var url: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
configuraBotaoSalvar()
val dialogView = AlertDialog.Builder(this)
val dialogViewLayout = FormularioImagemBinding.inflate(layoutInflater)
val botaoCarregarImagem = dialogViewLayout.formularioImagemBotaoCarregar
binding.activityFormularioProdutoImagem.setOnClickListener {
botaoCarregarImagem.setOnClickListener {
url = dialogViewLayout.formularioImagemUrl.text.toString()
dialogViewLayout.formularioImagemImageview.load(url)
}
dialogView.setView(dialogViewLayout.root)
.setPositiveButton("Confirmar") { dialog, which ->
url = dialogViewLayout.formularioImagemUrl.text.toString()
binding.activityFormularioProdutoImagem.load(url)
}
.setNegativeButton("Cancelar") { dialog, which ->
finish() // Ação do botão Cancelar
}
.show()
}
}
}