|
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 |
|
Herramientas |
#1
|
||||
|
||||
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!
__________________
|
|
#2
|
||||
|
||||
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?
|
#3
|
||||
|
||||
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.
__________________
|
#4
|
||||
|
||||
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!
|
#5
|
||||
|
||||
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
__________________
|
#6
|
||||
|
||||
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?
|
#7
|
||||
|
||||
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()); } });
__________________
|
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
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? 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!
__________________
|
#10
|
||||
|
||||
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!
|
#11
|
||||
|
||||
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 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!
__________________
|
Estás aquí | ||||||
|