Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 11/09/13, 19:17:22
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
Como limpiar EditText?

Buenas, tengo un problemilla con EditText.

¿Cómo hago para "limpiar" un EditText? Es decir, tengo un EditText donde se introduce un número, después se pulsa un Button y se realizan unas operaciones. La intención es que al pulsar este Button, se borre el contenido del EditText, de manera que se pueda repetir la operación sin tener que pulsar el botón "Back" para volver a la Activity anterior y abrir de nuevo la Activity mencionada.

Lo intento poniendo "editable.setText("")" en el "onClick" del Button pero así no funciona.

Alguna idea?

Gracias!
Responder Con Cita


  #2  
Viejo 11/09/13, 19:30:48
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Supongo que "editable" será el nombre que le has dado al objeto EditText. Pues algo debes estar haciendo mal porque debería funcionarte. ¿Lo cambias en el hilo principal o lo haces en algún Thread?
Responder Con Cita
  #3  
Viejo 11/09/13, 19:45:30
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Supongo que "editable" será el nombre que le has dado al objeto EditText. Pues algo debes estar haciendo mal porque debería funcionarte. ¿Lo cambias en el hilo principal o lo haces en algún Thread?
Si si, con editable me refiero al EditText en cuestión. En realidad he sido algo inexacto al explicar el problema
Y está todo en el hilo principal.

En el evento "onClick" del Button incluyo "editable.setText("")" y, además, "textview.setText("")" para limpiar el textview mostrado al pulsar el Button en anteriores ocasiones. Ambas cosas funcionan, el caso es que solo realiza las operaciones con el valor del EditText (un número decimal) la primera vez que pulsas el Button. Las demás veves se limita a limpiar tanto el TextView como el EditText.

Un saludo.
Responder Con Cita
  #4  
Viejo 11/09/13, 20:07:55
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

No sé si he entendido el problema, prueba a llamar editable.invalidate() después del editable.setText(""), a veces a los setText no les hace ni caso si no invalidas explícitamente
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 11/09/13, 22:58:35
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por mocelet Ver Mensaje
No sé si he entendido el problema, prueba a llamar editable.invalidate() después del editable.setText(""), a veces a los setText no les hace ni caso si no invalidas explícitamente
Nada

Pongo un ejemplo de ejecución:

Se rellena el EditText (son 6 en realidad), se pulsa el Button, se realizan unos cálculos y son mostrados en un TextView. Además, se borran los datos introducidos en el EditText.
Se rellena el EditText por segunda vez, se pulsa nuevamente el Button, se borran los cálculos mostrados anteriormente. NO se muestran los cálculos con los datos introducidos por segunda vez.

Me explico fatal
Responder Con Cita
  #6  
Viejo 11/09/13, 23:32:04
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Más o menos te he entendido, pero no tiene sentido que sólo lo haga la primera vez. ¿Puedes poner el código del onClick del button?
Responder Con Cita
  #7  
Viejo 11/09/13, 23:46:43
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Más o menos te he entendido, pero no tiene sentido que sólo lo haga la primera vez. ¿Puedes poner el código del onClick del button?

Claro, aquí está:

Código:
botonRes.setOnClickListener(new OnClickListener() 
		{
			@Override
			public void onClick(View v) 			
			{
				resultado.setText("");
				if (editableLadoA.getText().toString().length() != 0)
					a = Double.parseDouble(editableLadoA.getText().toString());
				else
					a=0;
				
				if (editableLadoB.getText().toString().length() != 0)
					b = Double.parseDouble(editableLadoB.getText().toString());
				else
					b=0;
				
				if (editableLadoC.getText().toString().length() != 0)
					c = Double.parseDouble(editableLadoC.getText().toString());
				else
					c=0;
							
				
				// Algoritmo para limpiar los EditText después de calcular.
				editableLadoA.setText("");
				editableLadoA.invalidate();
				editableLadoB.setText("");
				editableLadoB.invalidate();
				editableLadoC.setText("");
				editableLadoC.invalidate();

                                /* Algoritmo de cálculo.	
                                 *
			        */
				resBuilder.append("\nLado a = " + a);
				resBuilder.append("\nLado b = " + b);
				resBuilder.append("\nLado c = " + c);
				
				resultado.setText(resBuilder.toString());

			}			
});
Responder Con Cita
  #8  
Viejo 12/09/13, 08:22:23
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Por probar que no quede... haz un resultado.invalidate() al final de todo.

Por cierto, siempre hablas de los EditText pero esos son los que te funcionan bien, no? El problema es en la casilla de resultado, cierto?

Otra cosa, el resbuilder de dónde sale? Lo estás reutilizando?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Última edición por mocelet Día 12/09/13 a las 08:25:21.
Responder Con Cita
  #9  
Viejo 12/09/13, 18:13:57
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Por probar que no quede... haz un resultado.invalidate() al final de todo.

Por cierto, siempre hablas de los EditText pero esos son los que te funcionan bien, no? El problema es en la casilla de resultado, cierto?

Otra cosa, el resbuilder de dónde sale? Lo estás reutilizando?
Los EditText deben ser el problmea, porque después de la primera ejecución (primera pulsación del Button), dejan de hacerse los cálculos y no se muestra nada en el TextView.
Rresbuilder es un StringBuilder en el que almaceno los resultados y un número para identificar el algoritmo utilizado en los cálculos.

Ahora pruebo lo que me comentas y pongo por aquí si funciona.

Saludos!
Responder Con Cita
  #10  
Viejo 12/09/13, 18:44:18
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Podrías poner un punto de depuración antes de borrar el contenido de los edittext para ver si tus variables a, b y c tienen el valor esperado o no. O si te da pereza el debug, al menos una tostada que imprima el valor de a, b y c.

El resBuilder tendrás que inicializarlo también, digo yo que estarás arrastrando todas las ejecuciones con los append
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #11  
Viejo 12/09/13, 20:12:05
Array

[xs_avatar]
Bongiovi Bongiovi no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Localización: España
Mensajes: 186
Modelo de smartphone: Motorola Moto G , BQ Maxwell 2 Lite
Tu operador: Simyo
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Podrías poner un punto de depuración antes de borrar el contenido de los edittext para ver si tus variables a, b y c tienen el valor esperado o no. O si te da pereza el debug, al menos una tostada que imprima el valor de a, b y c.

El resBuilder tendrás que inicializarlo también, digo yo que estarás arrastrando todas las ejecuciones con los append
Creo que está arreglado, era un problema más sencillo.

Utilizo una variable auxiliar "i" para contar cuantos de los EditText se rellenan y cuantos se dejan en blanco. Se me olvidó poner a 0 la variable "i" después de cada ejecución, así que el comportamiento del código era muy aleatorio

En resumen, vaya quebradero de cabeza para esta tontería.

Gracias por la ayuda, un saludo!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 01:00:59 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /