martes, 22 de enero de 2013

Conversor de Monedas

Introducción:
Vamos a explicar como hacer un conversor de monedas muy sencillo, simplemente vamos a poder convertir los euros a dólares y los dólares a euros a partir de una cantidad dada.

Podremos elegir el tipo de conversión que queremos hacer a partir del radioButton seleccionado y también se puede indicar el valor del cambio, finalmente, para convertir, se pulsará sobre el botón Convertir.

Espero que le resulte fácil de entender. Si tiene cualquier duda no dude en comentar.

¡ Saludos !



Enlaces de interés:

Código Fuente
Puede descargar si lo desea el código fuente de este proyecto.



Pasos a seguir:

1. Creamos la interfaz de la actividad principal que nos permita introducir tanto dólares como euros, que nos permita elegir entre el tipo de cambio que queremos aplicar y el botón Convertir que calculará el cambio. A continuación le pongo un ejemplo de interfaz gráfica.

Elementos principales de la interfaz gráfica:

  • TextBox: que nos permitirá introducir valores
  • RadioButton: para poder elegir el tiempo de conversión
  • Button: para permitir al usuario realizar la conversión



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="28dp" android:layout_marginTop="44dp" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Dólares" android:textSize="24dip" /> <EditText android:id="@+id/edtDolares" android:layout_width="match_parent" android:inputType="number" android:layout_height="wrap_content" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Euros" android:textSize="24dip" /> <EditText android:id="@+id/edtEuros" android:layout_width="match_parent" android:inputType="number" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/rbEuroAdolar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Euros a Dólares" /> <RadioButton android:id="@+id/rbDolarAeuro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Dólares a Euros" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cambio a ..." android:textSize="24dip" /> <EditText android:id="@+id/etCambio" android:layout_width="match_parent" android:inputType="number" android:layout_height="wrap_content" /> <Button android:id="@+id/btnConvertir" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Convertir" /> </LinearLayout> </RelativeLayout>


2. En la actividad principal creamos lo campos necesarios para recoger los componentes de la interfaz gráfica que luego tendremos que utilizar.

public class MainActivity extends Activity implements OnClickListener { // CAMPOS ///////////////////////////////////////////////////// EditText dollars; EditText euros; EditText cambio; RadioButton dtoe; RadioButton etod; Button convert; // FIN CAMPOS ////////////////////////////////////////////////// /** Al inicar la actividad ... */ @Override public void onCreate(Bundle icicle) {

.
3. Luego en el método onCreate() le damos memoria a los campos creados en la clase además de suscribirnos a los eventos de los radioButton y del botón convertir.

/** Al inicar la actividad ... */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.activity_main); // INICIALIZACIÓN DE CAMPOS ////////////////////////////////////////////// dollars = (EditText)this.findViewById(R.id.edtDolares); euros = (EditText)this.findViewById(R.id.edtEuros); cambio = (EditText)this.findViewById(R.id.etCambio); dtoe = (RadioButton)this.findViewById(R.id.rbDolarAeuro); dtoe.setChecked(true); etod = (RadioButton)this.findViewById(R.id.rbEuroAdolar); convert = (Button)this.findViewById(R.id.btnConvertir); // FIN INICIALIZACIÓN DE CAMPOS //////////////////////////////////////////////// // EVENTOS /////////////////////////////////////////// convert.setOnClickListener(this); dtoe.setOnClickListener(this); etod.setOnClickListener(this); // FIN EVENTOS /////////////////////////////////////// }

4. Creamos el método de convertir los dólares a euros.

/** * Convierte los dólares a euros */ protected void convertDollarsToEuros() { double val; double tmp; // Controla los campos introducidos if ("".equals(dollars.getText().toString())){ val = 0; } else{ val = Double.parseDouble(dollars.getText().toString()); } if ("".equals(cambio.getText().toString())){ tmp = 0; } else{ tmp = Double.parseDouble(cambio.getText().toString()); } // Convierte el cambio a euros euros.setText(Double.toString(val* tmp)); }

5. Creamos el método que convierte los euros a dólares.

/** * Convierte los euros a dólares */ protected void convertEurosToDollars() { double val; double tmp; // Controla los campos introducidos if ("".equals(euros.getText().toString())){ val = 0; } else{ val = Double.parseDouble(euros.getText().toString()); } if ("".equals(cambio.getText().toString())){ tmp = 0; } else{ tmp = Double.parseDouble(cambio.getText().toString()); } // Convierte los cambios a dólares dollars.setText(Double.toString(val/tmp)); }


6. Finalmente controlamos que no haya dos radioButtons chequeados y según la opción elegida realizamos la conversión.

/** * Convierte los euros a dólares o * los dólares a euros */ public void onClick(View v) { // Controla el radioButtons chequeado if (v == convert){ if (dtoe.isChecked()) { convertDollarsToEuros(); } if (etod.isChecked()) { convertEurosToDollars(); } } // Controla que no estén dos radioButtons chequeados if (v == dtoe){ etod.setChecked(false); } if (v == etod){ dtoe.setChecked(false); } }

FIN



12 comentarios:

  1. Exelente Programa,¡Felicidades!
    ¿Pero es que acaso nunca piensas en los Alumnos?
    Existen maestros de Programacion que Dan 20 Minutos para desarrolar un Ejercicio de ese Tipo.
    El internet es Infinito y lo unico que queremos Encontrar en ese Momento es Un
    Ctrl+c y Ctrl+V ya sabes de que Hablo.
    Pero de ahi en fuera Muchas Felicidades "Jose Miguel Acosta Martin".

    ResponderEliminar
  2. El de arriba me la mamo y el de mas arriba es una verga el primero es un pendejo

    ResponderEliminar
  3. el ↑ ha de ser de la caspistrano

    ResponderEliminar
  4. Me lo apunto porque quiero empezar a tener más en cuenta como evoluciona la moneda según el momento para saber el momento idóneo para enviar dinero a mi familia, gracias por la ayuda

    ResponderEliminar
  5. He disfrutado mucho de toda la información que has publicado en la web, no conocía este conversor pero me ha gustado mucho, me encanta!

    ResponderEliminar
  6. como puedo hacer uno del abecedario a binario?

    ResponderEliminar
  7. La mamá del de arriba se baña con tenis

    ResponderEliminar