Kotlin - сбой вложенного AlertDialog для цикла - PullRequest
0 голосов
/ 02 июня 2019

FYI Я начинаю изучать Kotlin и имею предыдущий опыт работы с Python и PyQT.

Цель состоит в том, чтобы цикл for повторялся определенное количество раз на основе пользовательского ввода.Каждая итерация цикла for должна вызывать диалоговое окно с предупреждением, которое сохраняет ввод текста в ArrayList.

В настоящее время отображается диалоговое окно с запросом имени сайта.После ввода имени и нажатия «Ок» появится диалоговое окно с запросом количества зданий на участке.Этот вход сохраняется как целое число, используемое как предел цикла for.Это когда приложение вылетает.Диалоговое окно с запросом имени сайта никогда не отображается.Есть предложения?

btn_new_site.setOnClickListener { view ->
        //maybe convert this to seperate .kt and import in.
        //change to one builder & inflater & just change parameters?

        //ask for site name
        val site_builder = AlertDialog.Builder(this)
        val site_inflater = layoutInflater
        site_builder.setTitle("Site Name")
        val dialogLayout = site_inflater.inflate(R.layout.ad_site_name, null)
        val site_name  = dialogLayout.findViewById<EditText>(R.id.site_name)
        site_builder.setView(dialogLayout)
        site_builder.setPositiveButton("OK") { dialogInterface, i ->
            sites.add(site_name.text.toString())
            //ask for amount of buildings at site
            val amt_building_builder = AlertDialog.Builder(this)
            val amt_building_inflater = layoutInflater
            amt_building_builder.setTitle("How many buildings?")
            val dialogLayout = amt_building_inflater.inflate(R.layout.ad_site_amt_buildings, null)
            val site_amt_buildings  = dialogLayout.findViewById<EditText>(R.id.site_amt_buildings)
            amt_building_builder.setView(dialogLayout)
            amt_building_builder.setPositiveButton("OK") { dialogInterface, i ->
                val amtBuildings = site_amt_buildings.text.toString()
                val building_amt = amtBuildings.toInt()

                //ask for building names
                val building_name_builder = AlertDialog.Builder(this)
                val buiding_name_inflater = layoutInflater
                building_name_builder.setTitle("Building Name")
                val dialogLayout = buiding_name_inflater.inflate(R.layout.ad_building_name, null)
                val building_name  = dialogLayout.findViewById<EditText>(R.id.building_name)
                building_name_builder.setView(dialogLayout)
                building_name_builder.setPositiveButton("OK") { dialogInterface, i ->
                    //add to list of buildings for x site here
                }

                //ask for building names here
                for ( buildings in 1..building_amt) building_name_builder.show()
            }
            amt_building_builder.show()
        }

        site_builder.show()

    }


}

При компиляции ошибок не отображается.Просто предупреждение о том, что некоторые параметры никогда не используются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...