Доброго времени суток дамы и господа. Я начинающий, дело не имевший с языками программирования JAvA и Kotlin студент, если конечно можно сказать так в мои 37)) Возникло пару вопросов по Котлину. Где то конечно может не так сформулирую, но я постараюсь. Так имеем приложение на андроид с двумя кнопками и контейнером отображающий текст.
Приложение что то вроде счётчика, по нажатию на кнопку увеличиваем значение с нуля на еденицу и так далее. Есть кнопка сброса, которая обнуляет значение счётчика. Вот я реализовал это дело вот так :
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class MainActivity : AppCompatActivity() {
private lateinit var counterText: TextView
private lateinit var increaseButton: Button
private lateinit var resetButton: Button
private var counter: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
counterText = findViewById(R.id.counterText)
increaseButton = findViewById(R.id.increaseButton)
resetButton = findViewById(R.id.resetButton)
increaseButton.setOnClickListener {
counterText.text = "${++counter}"
}
resetButton.setOnClickListener {
counter = 0
counterText.text = "${this.counter}"
}
}
}
Вроде с самим счётчиком всё понятно, определил переменную присвоил значение по нажатию плюсуем по 1.
А вот с кнопкой сброса... получается я переопределяю значение переменной и вывожу его. Но я так думаю, что это можно сделать как то иначе, вот в принципе и вопрос как это можно реализовать проще?
Второй вопрос про переменные, получается у нас есть две разные переменные одного типа ( кнопка) , их же по идее можно группировать ? определить и вывести в одну строку? Если да то как.
Ну и последний вопрос в чем разница между
resetButton.setOnClickListener {
counter = 0
counterText.text = "${this.counter}"
}
и вот этим кодом
resetButton.setOnClickListener {
counter = 0
counterText.text = ("$counter")
}
Компилятор не ругается в обоих случаях, приложение функционирует без ошибок. Хотелось бы знать как правильнее это сделать. Спасибо всем заранее , кто подскажет.