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.