Estudio Android Calcular propina – 2 Agregar un detector de clics al botón El primer paso es agregar un detector de clics para especificar qué debe hacer el botón Calcular cuando el usuario lo toca. 1. En onCreate() de MainActivity.kt, después de llamar a setContentView(), Establezca un detector de clics en el botón Calcular y haga que llame a computeTip(). 2. Todavía en la clase MainActivity, pero fuera de onCreate(), agregue un método auxiliar llamado computeTip(). Aquí agregará el código apropiado para verificar la interfaz y calcular la propina.
Obtener tarifa de servicio 1. Obtenga el texto del cargo por servicio. En el método de cálculo de la propina (), obtenga la propiedad de texto del EditText del costo del servicio, y asígnelo a una variable llamada stringInTextField. Recuerde que puede acceder a los elementos de la interfaz de usuario utilizando objetos vinculantes, También se puede hacer referencia a los elementos de la interfaz de usuario por su nombre de ID de recurso (en caso de camello). Tenga en cuenta el .texto al final, la primera parte binding.costOfService se refiere al elemento de interfaz para el costo del servicio.
Agregue .text al final para obtener el resultado (objeto EditText) y obtenga la propiedad de texto de él. Esto se llama "cadena" y es un patrón muy común en Kotlin. 2. Convierta el texto a un número decimal. Llame a Double() en stringInTextField y guárdelo en una variable llamada cost. Sin embargo, eso no funciona: debe llamar a Double() en String. Resulta que la propiedad de texto de EditText es Editable porque representa texto que se puede cambiar. 3. Llama a toString() en binding.costOfService.text para convertirlo en una cadena: Ahora stringInTextField.toDouble() funcionará. Obtener porcentaje de propina Ahora necesita el porcentaje de propina que el usuario elige del RadioGroup of RadioButtons. 1. En calculeTip(), obtenga la propiedadcheckRadioButtonId de tipOptions RadioGroup, y asígnelo a una variable llamada selectedId. Ahora que sabe qué RadioButton está seleccionado, (uno de R.id.option_twenty_percent, R.id.option_eighteen_percent y R.id.fifteen_percent). 2. También se requiere el porcentaje correspondiente. Podría escribir una serie de sentencias if/else, pero es mucho más simple usar expresiones when.
Calcula la propina y redondea hacia arriba Una propina es el cargo por servicio multiplicado por el porcentaje de propina, es decir, propina = cargo por servicio * porcentaje de propina. (Opcional) El valor se puede redondear. 1. En calculeTip(), después de cualquier otro código que haya agregado, multiplica el costo por tipPercentage,
y asígnelo a una variable llamada tip. Tenga en cuenta que aquí se usa var, no val. Esto se debe a que es posible que deba redondear el valor si el usuario selecciona la opción correspondiente, por lo que el valor puede cambiar.
Para el elemento Switch, puede verificar el atributo isChecked para ver si el interruptor está "activado". 2. Asigne la propiedad isChecked del interruptor de redondeo a una variable llamada roundUp. El término "redondeo" significa redondear un número decimal hacia arriba o hacia abajo al valor entero más cercano, Pero en este caso, solo desea redondear o encontrar el límite superior. Para esto, puedes usar la función ceil(). Hay varias funciones con ese nombre, pero lo que quieres es la definida en kotlin.math. Dar formato a la punta En calculeTip(), después del resto del código, Llame a NumberFormat.getCurrencyInstance(). Esto le brinda una herramienta de formateo de números que puede usar para formatear números como moneda.
2. Con el formateador de números, encadene la llamada al método format() con la sugerencia, Y asigne el resultado a una variable llamada formattedTip. Tenga en cuenta que NumberFormat se muestra en rojo. Esto se debe a que Android Studio no puede determinar automáticamente a qué versión de NumberFormat se refiere. 3. Pase el cursor sobre NumberFormat y elija Importar en la ventana emergente que aparece. En la lista de posibles importaciones, elija NumberFormat (java.text). Android Studio agrega una declaración de importación en la parte superior del archivo MainActivity y NumberFormat ya no es rojo. Mostrar consejo
57
00:05:19,326 –> 00:05:24,066
El marco de Android proporciona un mecanismo llamado "parámetros de cadena" para este propósito, Esto le permite a la persona que traduce la aplicación cambiar dónde aparecen los números si lo desea. 1. Abra strings.xml, cambie la cadena tip_amount de Tip Amount a Tip Amount: %s.
La moneda formateada se insertará en %s. 2. Ahora, configure el texto de tipResult. En el método de cálculo de propina () devuelto a MainActivity.kt, llame a getString (R.string.tip_amount, formattedTip) Y asígnelo a la propiedad de texto del resultado de la sugerencia TextView. Establecer un marcador de posición para este TextView es útil al desarrollar una aplicación (y ver una vista previa). 3. Abra actividad_principal.xml,
Encuentre el TextView tip_result. Elimina la línea de código que contiene el atributo android:text.
4. Agregue una línea de código para el atributo tools:text establecido en Cantidad de propina: $10. Tenga en cuenta que el texto de la herramienta se muestra en el editor de diseño. 5. Ejecute la aplicación. Ingrese el monto del cargo por servicio y seleccione algunas opciones, luego presione el botón Calcular..