¿Por qué mi editText no presenta la salida correcta en android?
Soy un principiante en la programación android y estoy tratando de escribir una calculadora simple con 3 campos de editText. 2 de ellos se utilizan como entradas y el tercero como el resultado de salida. Cuando hago clic en el botón "+" espero que la salida de la suma de los 2 números. Pero consigo un número extraño en lugar de por ejemplo 2 + 3 = 2.131230724E9 Traté de resolver en sobre la red pero no podría encontrar ese problema específico … .gracias …
final double tf1 = Double.parseDouble(String.valueOf(R.id.editText1)); final double tf2 = Double.parseDouble(String.valueOf(R.id.editText2)); Button btplus = (Button)findViewById(R.id.button1); btplus.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { double tf3; tf3 = tf1 + tf2; EditText result = (EditText)findViewById(R.id.editText3); result.setText(String.valueOf(tf3)); } });
- Dagger: la clase no podría estar enlazada con la clave
- Android Studio v7- Errores de importación para pocas clases (No se puede resolver el símbolo)
- Cambiar la intensidad de clarear / oscurecer en mapas de bits mediante PorterDuffXfermode en la clase Paint de Android
- Las notificaciones desaparecen tan pronto como finaliza el servicio
- ¿Qué es Maven en Android Studio?
- explicar la sintaxis EditText editText = (EditText) findViewById (R.id.edit_message);
- URLConnection getContentLength () devuelve un valor negativo
- La aplicación de Android se bloquea después de la versión de actualización de las herramientas de SDK (NoClassDefFound, versión de la herramienta 22)
- Divide la declaración de servicio de Retrofit en múltiples interfaces
- R.layout.menu no se puede resolver
- No puede utilizar el método "getString (int resId)" en FragmentPagerAdapter
- ¿Cómo utilizo un proyecto Java que requiere un nivel de cumplimiento de 1.7 en una ruta de construcción de proyecto de Android?
- Android youtube API reproduce dos o más jugadores de Youtube en una actividad principal
R.id.editText1
se refiere al valor int en R.java
.
Es necesario inicializar EditText primero en onCreate
. Si no desea que el modificador final declare EditText como miembro de la clase
final EditText ed1 = (EditText) findViewById(R.id.editText1); final EditText ed2 = (EditText) findViewById(R.id.editText1); final EditText result = (EditText)findViewById(R.id.editText3);
Entonces
Button btplus = (Button)findViewById(R.id.button1); btplus.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { double tf3; double tf1 =Double.parseDouble(ed1.getText().toString()); double tf2 =Double.parseDouble(ed2.getText().toString()); tf3 = tf1 + tf2; result.setText(String.valueOf(tf3)); } });
El problema está en su código:
final double tf1 = Double.parseDouble(String.valueOf(R.id.editText1)); final double tf2 = Double.parseDouble(String.valueOf(R.id.editText2));
No está tomando el valor de EditText, sino la referencia a los objetos. Usted necesita cambiar esto para algo como esto
final double tf1 = Double.parseDouble(((EditText)findViewById(R.id.editText1)).getText().toString()); final double tf2 = Double.parseDouble(((EditText)findViewById(R.id.editText2)).getText().toString());
Además, debe incluir estas líneas en el método OnClick del botón, por lo que tomará los valores actuales cuando haga clic en el botón.
En lugar de esto :
result.setText(String.valueOf(tf3));
Utilizar esta :
result.setText("" + tf3);
Pruebe lo siguiente:
EditText editText1 = (EditText) findViewById(R.id.editText1); EditText editText2 = (EditText) findViewById(R.id.editText2); final double tf1 = Double.parseDouble(editText1.getText().toString()); final double tf2 = Double.parseDouble(editText2.getTExt().toString());
R.id es sólo un entero de referencia y es por eso que obtiene números impares al agregar los dos enteros de id juntos, no el valor real en el cuadro de texto.
final double tf1 = Double.parseDouble(edittext1.getText().toString()); final double tf2 = Double.parseDouble(edittext2.getText().toString()); Button btplus = (Button)findViewById(R.id.button1); btplus.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { double tf3 = 0; tf3 = tf1 + tf2; EditText result = (EditText)findViewById(R.id.editText3); result.setText(String.valueOf(tf3)); } });
- Utilización de elementos desplegables en lugar de texto para los botones de AlertDialog
- Android: cómo mostrar el widget de otras aplicaciones en mi actividad