Advertisement
VictorMunoz

Reto UF1

Feb 22nd, 2024
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.25 KB | None | 0 0
  1. package com.dam.euro2dollarconverter;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11.  
  12. public class MainActivity extends AppCompatActivity {
  13.     private TextView title, info, resultInfo, result;
  14.     private EditText amount;
  15.     private Button btn_eur_usd, btn_usd_eur;
  16.  
  17.  
  18.     @Override
  19.     protected void onCreate(Bundle savedInstanceState) {
  20.         super.onCreate(savedInstanceState);
  21.         setContentView(R.layout.activity_main);
  22.  
  23.         //Definir los elementos de la interfaz
  24.         title = (TextView) findViewById(R.id.textViewTitle);
  25.         info = (TextView) findViewById(R.id.textViewInfo);
  26.         resultInfo = (TextView) findViewById(R.id.textViewResultInfo);
  27.         result = (TextView) findViewById(R.id.textViewResult);
  28.  
  29.         amount = (EditText) findViewById(R.id.editTextNumber);
  30.  
  31.         btn_eur_usd = (Button) findViewById(R.id.btnEurosToDollars);
  32.         btn_usd_eur = (Button) findViewById(R.id.btnDollarsToEuros);
  33.  
  34.         // Listener del botón para convertir de EUR a USD
  35.         btn_eur_usd.setOnClickListener(new View.OnClickListener() {
  36.             @Override
  37.             public void onClick(View view) {
  38.                 String amountText = amount.getText().toString();
  39.  
  40.                 // Caso 1: El usuario no ha escrito en la caja de cantidad.
  41.                 if (amountText.isEmpty()) {
  42.                     Toast.makeText(MainActivity.this, "Debe introducir una cantidad a convertir", Toast.LENGTH_SHORT).show();
  43.  
  44.                 // Si hay texto escrito comprueba si es un número o texto convirtiéndolo dentro de un try
  45.                 } else {
  46.                     // Caso 2: El usuario ha introducido un valor numérico válido, realiza la operación correspondiente
  47.                     try {
  48.                         double euros = Double.parseDouble(amountText);
  49.                         double conversionResult = Math.round(euros * 1.21 * 1000.0) / 1000.0; // Redondear el resultado en 3 decimales
  50.  
  51.                         result.setText(String.format("%s$", conversionResult));
  52.                         Toast.makeText(MainActivity.this, "Operación realizada correctamente", Toast.LENGTH_SHORT).show();
  53.  
  54.                     // Caso 3: El usuario ha introducido un texto no numérico, por lo que salta el catch
  55.                     } catch (NumberFormatException e) {
  56.                         Toast.makeText(MainActivity.this, "Valor erróneo, introduzca un valor numérico", Toast.LENGTH_SHORT).show();
  57.                     }
  58.                 }
  59.             }
  60.         });
  61.  
  62.         // Listener del botón para convertir de USD a EUR
  63.         btn_usd_eur.setOnClickListener(new View.OnClickListener() {
  64.             @Override
  65.             public void onClick(View view) {
  66.                 String amountText = amount.getText().toString();
  67.  
  68.                 // Caso 1: El usuario no ha escrito en la caja de cantidad.
  69.                 if (amountText.isEmpty()) {
  70.                     Toast.makeText(MainActivity.this, "Debe introducir una cantidad a convertir", Toast.LENGTH_SHORT).show();
  71.  
  72.                 // Si hay texto escrito comprueba si es un número o texto convirtiéndolo dentro de un try
  73.                 } else {
  74.                     // Caso 2: El usuario ha introducido un valor numérico válido, realiza la operación correspondiente
  75.                     try {
  76.                         double dollars = Double.parseDouble(amountText);
  77.                         double conversionResult = Math.round(dollars / 1.21 * 1000.0) / 1000.0; // Redondear el resultado en 3 decimales
  78.                         result.setText(String.format("%s€", conversionResult));
  79.                         Toast.makeText(MainActivity.this, "Operación realizada correctamente", Toast.LENGTH_SHORT).show();
  80.  
  81.                     // Caso 3: El usuario ha introducido un texto no numérico, por lo que salta el catch
  82.                     } catch (NumberFormatException e) {
  83.                         Toast.makeText(MainActivity.this, "Valor erróneo, introduzca un valor numérico", Toast.LENGTH_SHORT).show();
  84.                     }
  85.                 }
  86.             }
  87.         });
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement