Есть код на kotlin. Сообщений об ошибках нет, но приложение не запускается. В чём может быть проблема?
import android.os.Bundle
import android.widget.*
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// получаем элемент ListView
var plantsList: ListView? = null
// получаем ресурсы
//растения
var plants = resources.getStringArray(R.array.plants)
//список для удаления
var selectedPlants = resources.getStringArray(R.array.selectedPlants)
// создаем адаптер
var adapter: ArrayAdapter<String>? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
plantsList = findViewById(R.id.plantsList)
adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, plants)
// устанавливаем для списка адаптер
plantsList!!.adapter = adapter
// добвляем для списка слушатель
plantsList!!.onItemClickListener = AdapterView.OnItemClickListener { parent, v, position, id ->
// получаем нажатый элемент
var phone = adapter!!.getItem(position);
if(plantsList!!.isItemChecked(position)==true){
add(selectedPlants)
}
else{
remove(selectedPlants)
}
}
}
fun add(view: Array<String>) {
val plantEditText = findViewById<EditText>(R.id.plant)
val plant = plantEditText.text.toString()
if (!plant.isEmpty() && plants.contains(plant) == false) {
adapter!!.add(plant)
plantEditText.setText("")
adapter!!.notifyDataSetChanged()
}
}
fun remove(view: Array<String>) {
// получаем и удаляем выделенные элементы
for (i in selectedPlants.indices) {
adapter!!.remove(selectedPlants.get(i))
}
// снимаем все ранее установленные отметки
plantsList!!.clearChoices()
// очищаем массив выбраных объектов
selectedPlants.isEmpty()
adapter!!.notifyDataSetChanged()
}
}