Tengo un EditText edit_text con tipo de entrada numérica y quiero hacer un incremento de la variable en él cuando presiono el botón "+". Intento este código pero no funciona.

Recibo un FATAL EXCEPTION.

@Override
public void onClick(View v) {
    String value = edit_text.getText().toString();
    int value_int = Integer.parseInt(value);
    int incremento = value_int +1 ;
    edit_text.setText(incremento);
}
-5
Nikita 27 ene. 2015 a las 12:36

3 respuestas

La mejor respuesta
edit_text.setText(incremento);

Esta línea te da el error. Cambie eso a.

edit_text.setText(String.valueOf(incremento));

La razón es que no puede poner directamente un int en setText() ya que intenta encontrar un recurso con un id correspondiente a usted int y falla.

2
Kamran Ahmed 27 ene. 2015 a las 10:07

¿Qué tal esto:

@Override
        public void onClick(View v) {
            String value=edit_text.getText().toString();
            int value_int=Integer.parseInt(value);
            int incremento=value_int +1 ;
            edit_text.setText(incremento.toString());

        }
    });

Algunas notas aunque:

  1. Dependiendo del tipo de entrada, se debe usar numérico con int / integer y decimal con double / Double. Debe encargarse de convertir string / double / int porque la conversión a veces puede no ser posible, por lo que debe manejar esos casos.
  2. Puede convertir de int a string de dos formas posibles:

    • edit_text.setText (incremento + "");
    • edit_text.setText (String.valueOf (incremento));
0
johnny_crq 28 ene. 2015 a las 09:38

Actualiza esto ...

edit_text.setText(""+incremento);

Ya que setText () requirió String como argumento, no como Integer ... por lo tanto, concentró el "" con el String de retorno entero que finalmente se requiere

0
Angad Tiwari 27 ene. 2015 a las 10:47