Beginner question - Any idea why my code won't compile? I based it on a code given in this codelab and the given code compiles just fine. Any help is greatly appreciated :)
package com.example.converterapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.converterapp.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.calculateButton.setOnClickListener{ calculate() }
}
fun calculate() {
val stringInTextField = binding.measurementToConvert.text.toString()
val measurement = stringInTextField.toDoubleOrNull()
if (measurement == null) {
binding.convertedMeasurement.text = ""
return
}
val selectedId = binding.conversionOptions.checkedRadioButtonId
val conversion = when (selectedId) {
R.id.oz_to_cups -> 0.125
R.id.cups_to_oz -> 8
R.id.oz_to_grams -> 28.3495
else -> 0.035274
}
var desiredMeasurement = measurement * conversion
val roundUp = binding.roundUpSwitch.isChecked
if (roundUp) {
desiredMeasurement = kotlin.math.ceil(desiredMeasurement)
}
binding.convertedMeasurement.text = getString(R.string.convertedMeasurement, desiredMeasurement)
}
}
Error Message:
\ConverterApp\app\src\main\java\com\example\converterapp\MainActivity.kt: (33, 46): None of the following functions can be called with the arguments supplied:
public final operator fun times(other: Byte): Double defined in kotlin.Double
public final operator fun times(other: Double): Double defined in kotlin.Double
public final operator fun times(other: Float): Double defined in kotlin.Double
public final operator fun times(other: Int): Double defined in kotlin.Double
public final operator fun times(other: Long): Double defined in kotlin.Double
public final operator fun times(other: Short): Double defined in kotlin.Double