У меня есть setOnClickListener
на двух кнопках, которые просто запускают код в двух функциях.
Я хочу создать безопасный вызов, поэтому, когда я нажимаю кнопки, приложение не разбивается. Я думал, что мне придется сделать их ложными или что-то в этом роде, но, видимо, это не сработает.
Как я должен это делать?
благодаря
if (weightView.text.isEmpty() && percentageView.text.isEmpty()) { calculation() == false lbsCalculation() == false } else { calculation() lbsCalculation() }
Это мои два клика.
calculateBtn.setOnClickListener{ calculation() } lbsCalculationBtn.setOnClickListener{ lbsCalculation() }
Функции:
fun calculation () { var weightValue = weightView.text.toString().toInt() var percentageValue = percentageView.text.toString().toInt() var result = (weightValue * percentageValue) / 100.toDouble() var resultFormat = "%.1f KG".format(result) resultView.text = resultFormat.toString() } fun lbsCalculation() { var weightValue = weightView.text.toString().toInt() var percentageValue = percentageView.text.toString().toInt() var result = ((weightValue * percentageValue) / 100) * 2.2.toDouble() var resultFormat = "%.1f LBS".format(result) resultView.text = resultFormat.toString() }
=================
Картина
Сделайте это внутри своего метода. Что-то вроде этого:
public class calculation(String weightView, String percentageView){ //you make a condition that should do something if strings are empty if(weightView && percentageView == null) //DO WHAT YOU WANT }else{ //Show an alert or something that your EditText is empty. }
и должен вызвать это следующим образом:
calculateBtn.setOnClickListener{ calculation(weightView.getText.toString(),percentageView.getText.toString()) }
====== EDIT =======
Ваша функция должна выглядеть так:
fun calculation(weightValue: String,percentageValue: String) { if(weightValue == null && percentageValue == null ){ var myWeightValue = weightValue.toInt(); var myPercentageValue = percentageValue.toInt(); var result = (myWeightValue * myPercentageValue) / 100 var resultFormat = "%.1f KG".format(result) resultView.text = resultFormat } else { **SHOW A MESSAGE LIKE A TOAST OR ALERTDIALOG TO LET THE USER KNOW THAT WEIGHT AND PERCENTAGE IS REQUIRED** } } fun lbsCalculation() { var weightValue = weightView.text.toString().toInt() var percentageValue = percentageView.text.toString().toInt() var result = ((weightValue * percentageValue) / 100) * 2.2 var resultFormat = "%.1f LBS".format(result) resultView.text = resultFormat }
Ваш onClick должен выглядеть следующим образом:
calculateBtn.setOnClickListener{ calculation(weightView.text,percentageView.text) }