Как только пользователь нажимает на change_account в моей активности, появляется диалоговое окно, а затем, когда пользователь нажимает кнопку "Создать счетчик" в этом диалоговом окне, я хочу показать другое диалоговое окно.
Но, к сожалению, я получилэта ошибка:
E / AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: у указанного дочернего элемента уже есть родительский элемент.Сначала вы должны вызвать removeView () на родительском объекте ребенка.
Я видел в сети некоторый код для removeView (), но я не знаю, как его использовать.Тем более, что я вызываю диалог из другого диалога.
и вот мой код, строка, которая вызывает ошибку, состоит в том, что один
creatCount.create().apply { show() }
А вот полный код:
class ClientAcountActivity : AppCompatActivity(),AdapterView.OnItemClickListener{
override fun onCreate(savedInstanceState: Bundle?) {
....
change_account.setOnClickListener { openChangeCompte() }
}
fun openChangeCompte()
{
val dialogBuilder = AlertDialog.Builder(this)
val inflater = getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val row = inflater.inflate(R.layout.dialog_listview, null, false)
val listAccount= row.findViewById<ListView>(R.id.transfer_type_list)
Log.d("ClientAccountActivity", Injection.provideAccountRepository().availableAccountsType.toString())
listAccount.adapter = CountChangeAdapter(Injection.provideAccountRepository().availableAccountsType, this)
listAccount.onItemClickListener = AdapterView.OnItemClickListener { adapterView: AdapterView<*>, view: View, i: Int, id: Long ->
if((adapterView.getCount()!=4) && (i==adapterView.getCount()-1))
{
val creatCount: AlertDialog.Builder = AlertDialog.Builder(this).apply {
setView(row)
setTitle("Quel compte voulez vous créer ")
setPositiveButton("OK", DialogInterface.OnClickListener() {
dialogInterface: DialogInterface, i: Int ->
fun onClick(dialog:DialogInterface , which:Int) {
}})
setNegativeButton("Cancel", DialogInterface.OnClickListener() {
dialogInterface: DialogInterface, i: Int ->
fun onClick(dialog:DialogInterface , which:Int) {
finish()
}})
}
creatCount.create().apply { show() } //the line which cause the pb
}
else
{
Injection.provideAccountRepository().selectedAccount=id.toInt()
updateBalance()
changeAccoutDialog!!.dismiss()
}
}
dialogBuilder.setView(row)
dialogBuilder.setTitle("Quel compte voulez vous choisir?")
changeAccoutDialog = dialogBuilder.create().apply { show() }
}
}