2010-04-23 5 views
5

Soy un novato de Android. Estoy pensando en implementar una calculadora simple en Android para obtener lo básico en Android. Quiero mostrar un teclado con números y operaciones matemáticas y cuando el usuario presiona las teclas se visualiza el número correspondiente en el texto de edición. Intenté usar gettext() y actualizar el contenido del texto de edición, pero muestra solo el contenido del botón presionado. ¿También cómo leo el contenido del botón para hacer operaciones matemáticas en el código? Cualquier ayuda sería muy apreciada.Android: ¿Cómo establecer el contenido de un texto de edición desde un clic de botón?

cordiales,

Primal

Respuesta

5

Tratar el título del botón como los datos reales es algo que es una práctica más o menos sólo es aceptable cuando estás haciendo los botones de dígitos en una calculadora, así que Don 't saber si eso vale para' aspectos básicos de Android ';)

Independientemente;

Está indicando que desea mostrar el número correspondiente, cuando el usuario presiona una tecla (¿botón?). Y luego dices getText solo te muestra el contenido del botón presionado ... ¿No es eso exactamente lo que estás pidiendo? Es posible que necesites proporcionar un poco de código y mostrarnos lo que no funciona de la manera que quisiste. Pero si un botón tiene el texto '8', y que desea tratar esto como un ocho en operaciones matemáticas, es necesario analizarlo:

Integer myNumber = Integer.parse(myButton.getText()); 

... que, por supuesto, una excepción si el texto de myButton no se resuelve en un número entero.

EDITAR, AL COMENTARIO

De la explicación de su problema se dio en su comentario, sí, setText() restablece el texto en su totalidad con el valor que está siendo pasada, pero se puede utilizar una combinación de eso y getText() si sólo desea añadir algo al valor actual:

myEditText.setText(myEditText.getText() + " " + myButton.getText()); 
+0

no podía pensar en cualquier otra aplicación :(Cualquier sugerencia en este aspecto son bienvenidos también :) getText() me da lo que quiero. El problema es que no sé cómo llenar un EditText usándolo. El único método que conozco es setText() y actualiza los contenidos de EditText al hacer clic en cada botón. – primpap

+0

bien, ver mi actualización =) –

6

para definir el contenido de un EditarTexto:

EditText text = (EditText) findViewById(R.id.your_text); 
text.setText("Display this text"); 

En lugar de tratar de tirar el texto fuera de sus botones y utilizarlo como un entero, me acaba de añadir un detector de clics a cada uno que "sabe" el valor de su botón:

Button button = (Button) findViewById(R.id.num_1); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     // Do something with the value of the button 
    } 
}); 
2

Para establecer el texto del botón en EditarTexto:

EditText edittext=(EditText)findviewById(R.id.edittext); 
Button num1=(Button)findViewById(R.id.button_num1); 
Button num2=(Button)findviewById(R.id.button_num2); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     edittext.append("1"); 
    } 
}); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     edittext.append("2"); 
    } 
}); 

para ver here sencilla calcultaor que le ayudará a crear una calculadora en el androide.

+2

¡Bienvenido a Stack Overflow! ¿Consideraría agregar alguna narración para explicar por qué funciona este código y qué hace que sea una respuesta a la pregunta? Tenga en cuenta, por ejemplo, cómo las otras respuestas publicadas aquí explican su código. –

4

Pruebe el siguiente código.

EditText x = (EditText)findviewbyid(R.id.abc); 

No utilizar x.setText(); en su lugar, use x.append(Your variable or value here). Esto no borrará el texto que vino del botón anterior.

+0

'método append (" ")' me salvó la vida! –

Cuestiones relacionadas