2015-11-13 1 views
6

Я новичок в программировании. Я сделал простое приложение для Android, которое попросило пользователя поставить 2 номера, выполнить вычисления, отобразить ответ, нажав кнопку расчета. Теперь я пытаюсь установить кнопку сброса, чтобы очистить все поля. Проверено решение для переполнения стека, но по-прежнему не может понять, как это сделать. Это мой код:Код сброса для EditText и TextView для android

public void calculate(View view) 
{ 

    EditText number1 = (EditText)findViewById(R.id.num1ID); 
    EditText number2 = (EditText)findViewById(R.id.num2ID); 

    Double num1Value = Double.parseDouble(number1.getText().toString()); 
    Double num2Value = Double.parseDouble(number2.getText().toString()); 

    Double resultValue = num1Value - num2Value; 
    TextView resultDisplay = (TextView)findViewById(R.id.resultID); 

    resultDisplay.setText(Double.toString(resultValue)); 
    } 

спасибо.

+4

используется метод SetText, передавая пустую строку: '.setText («»)' – 1615903

+0

Привет @nick. Я нашел [эту тему] (http://stackoverflow.com/a/5816949), которая кажется довольно интересной. Может служить ссылкой для других. По сути, если у вас есть только EditText в одном макете, вы можете использовать этот метод для их сброса. ** Редактирование **: Я понимаю, что вы новичок в программировании, я бы не ожидал, что вы поймете, что происходит, но опять же, это может служить ссылкой для других. – AuroMetal

+0

Вы правы, это выглядит довольно сложно, надеюсь, я смогу обернуть голову вокруг этого решения раньше, чем позже. Спасибо! – nick

ответ

3

Просто добавьте кнопку resetButton макет

Button resetButton = (Button) findViewById(R.id.btnReset); 
    resetButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      number1.setText(""); 
      number2.setText(""); 
      resultDisplay.setText(""); 
     } 
    }); 
+0

Работал как шарм! Большое спасибо! – nick

2

Там нет метода в EditText для очистки данных. Если вы хотите удалить эти данные, вы должны установить

.setText(""); 

В самой документации по андроиду нет возможности сбросить поле.

3

Есть способ, как этот

public void resetTextViews() { 
     number1.setText(""); 
     number2.setText(""); 
     resultDisplay.setText(""); 
} 

Затем просто установить на клик слушателя на кнопке, который вызывает этот метод.

2

Вы хотите сбросить свой текст?

private void resetNumbersFields() { 
    number1.setText(""); 
    number2.setText(""); 
    resultDisplay.setText(""); 
    // if you want you can add setHint to add hint to your EditText when your field is empty 
} 

Я надеюсь, что поможет вам

2

Точный код для вашей программы.

public void calculate(View view) { 

    EditText number1 = (EditText)findViewById(R.id.num1ID); 
    EditText number2 = (EditText)findViewById(R.id.num2ID); 
    Button B_reset=(Button)findViewById(R.id.bReset); 
    // create a button on your Layout for Reset as "bReset" 

    Double num1Value = Double.parseDouble(number1.getText().toString()); 
    Double num2Value = Double.parseDouble(number2.getText().toString()); 

    Double resultValue = num1Value - num2Value; 
    TextView resultDisplay = (TextView)findViewById(R.id.resultID); 

    resultDisplay.setText(Double.toString(resultValue)); 


//reset code 
    B_reset.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     number1.setText(""); // reset the EditText number1 
     number2.setText(""); // reset the EditText number2 
     resultDisplay.setText(""); // reset the Textview resultDisplay 
     } 
    }); 

} 
Смежные вопросы