Ejercicio: Conversor de moneda en Kotlin
Convertir $ a € y viceversa usando Kotlin
Ejercicio: Conversor de moneda
Creación del layout activity_main.xml
Qué es un objeto en Kotlin?
Pasar una cadena de texto a número y viceversa:
Conversion.kt
object Conversion { @Throws(NumberFormatException::class) fun convertirADolares(cantidad: String, cambio: Double): String { val valor = cantidad.toDouble() / cambio return java.lang.Double.toString(valor) //return String.valueOf(valor); } @Throws(NumberFormatException::class) fun convertirAEuros(cantidad: String, cambio: Double): String { val valor = cantidad.toDouble() * cambio return String.format("%.2f", valor) } }
Use view binding to replace findViewById
Ejercicio: Conversor de moneda usando View Binding
en el fichero build.gradle se deben añadir estas líneas:
buildFeatures { viewBinding = true }
Fichero build.gradle(Module :app):
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") } android { namespace = "com.example.conversor" compileSdk = 34 buildFeatures { viewBinding = true } defaultConfig { applicationId = "com.example.conversor" minSdk = 28 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } . . .
MainActivity.kt:
class MainActivity : AppCompatActivity(), View.OnClickListener { val RATIO = 0.9 //private var binding: ActivityMainBinding? = null lateinit private var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //activity_main.xml -> ActivityMainBinding binding = ActivityMainBinding.inflate(layoutInflater) val view: View = binding.root setContentView(view) //botón convertir en activity_main.xml binding.convertir.setOnClickListener(this) } override fun onClick(view: View) { if (view === binding.convertir) { try { if (binding.eurosADolares.isChecked) { binding.dolares.setText( Conversion.convertirADolares(binding.euros.text.toString(), RATIO) ) } else { binding.euros.setText( Conversion.convertirAEuros(binding.dolares.text.toString(), RATIO) ) } } catch (e: NumberFormatException) { Toast.makeText(this, "Error en la conversión: " + e.message, Toast.LENGTH_SHORT).show() } } } }
Ejercicio 1 de la tarea online de la unidad 2
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.