PDA

Ver la Versión Completa : [ CONSULTA ] Aplicación para sumar números


marc_6
09/02/15, 12:36:57
Buenos días,

Estoy empezando en esto de programar apps y me encuentro en un problema que no he podido solucionar, quizás es algo muy básico.

Me gustaría crear una aplicación que sumara dos números mostrando directamente el resultado sin necesidad de pulsar un botón (así sí lo sé hacer).

Ahora mismo no tengo el código a mano pero intento contaros un poco como lo tengo montado:

En el HTML tengo definidos dos EditText para entrar los sumandos y un TextView para que muestre el resultado. En los tres cases he definido sólo el id (sumando1, sumando2 y resultado respectivamente), el ancho, el alto y la posición.

Hasta aquí bien. Después supongo que debo crearme una "acción" (no sé si es el termino correcto). Aquí es donde empiezo a perderme, yo la he creado como (lo escribo de memoria):

Public void SumaValores (Aquí no se que poner){

EditText Sumando1 = (EditText) FindViewById(R.id.sumando1); // Definir variable asociada al primer sumando

EditText Sumando2= (EditText) FindViewById(R.id.sumando2); // Definir variable asociada al segundo sumando

TextView resultado = (TextView) FindViewById(R.id.resultado); // Definir variable asociada al resultado

Int s1 = Integer.parseInt(Sumando1); // Pasar la variable a entero

Int s2 = Integer.parseInt(Sumando2);// Pasar la variable a entero

Int s = s1+s2; // Definir entero que adquiere el valor de la suma

String suma = Integrer.toString(s); // Pasamos “s” a string

resultado.setText(suma); // Asignar al TextView el valor de suma

}

Entonces me gustaría que esta acción se ejecutara cada vez que el usuario introduce un valor en el primer o segundo sumando, recalculando automáticamente el resultado. El problema es que no se desde dónde o cómo llamar a que se ejecute esta acción cada vez que se introduce o modifica un valor. Tampoco tengo claro dónde ubicar la acción dentro del archivo Java.

Os pongo algunos ejemplos:

Ejemplo1: Primer sumando = 2, segundo sumando = 3, entonces resultado = 5. Si modifico el segundo sumando = 4, automáticamente quiero que el resultado = 6.

Si se introduce sólo el primer valor, el resultado será igual al primer valor (y lo mismo para el segundo).

Ejemplo2: Primer sumando = 2, segundo sumando = (nada), resultado = 2.

Ejemplo3: Primer sumando = (nada), segundo sumando = 3, resultado = 3.

Muchas gracias, toda ayuda será bien recibida

kriogeN
09/02/15, 13:05:27
Buscas el addTextChangedListener.

Tienes que aplicarlo sobre cada uno de los EditText, y tiene como parámetro una interface TextWatcher (puede ser la misma para los 2). Tienes que implementar el método afterTextChanged para que haga la suma de los 2 EditText y la coloque en el TextView.

OJO!! Tendrás que controlar la posible excepción de que lo que haya introducido no sea un número, incluida la cadena vacía.