2015-11-13 6 views
6

Ich bin neu in der Programmierung. Ich habe eine einfache Android-App gemacht, die den Benutzer auffordert, 2 Zahlen einzugeben, Berechnungen durchzuführen, die Antwort anzuzeigen, indem man auf Berechnen klickt. Jetzt versuche ich Reset-Taste zu setzen, um alle Felder zu löschen. Auf die Lösung beim Stack-Überlauf geprüft, kann aber immer noch nicht herausfinden, wie es geht. Das ist mein Code:Reset-Code für EditText und TextView für 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)); 
    } 

Vielen Dank.

+4

Sie verwenden die setText Methode, vorbei an leeren String nützlich ist: '.setText („“)' – 1615903

+0

Hallo @ Nick. Ich habe [this thread] (http://stackoverflow.com/a/5816949) gefunden, was ebenfalls sehr interessant erscheint. Könnte als Referenz für andere dienen. Im Wesentlichen, wenn Sie nur EditText in einem einzelnen Layout haben, können Sie diese Methode verwenden, um sie alle zurückzusetzen. ** Bearbeiten **: Ich verstehe, dass Sie neu in der Programmierung sind, ich würde nicht erwarten, dass Sie verstehen, was vor sich geht, aber wieder kann es als Referenz für andere dienen. – AuroMetal

+0

Sie haben Recht, es sieht ziemlich kompliziert für mich aus, hoffentlich werde ich in der Lage sein, meinen Kopf früher oder später um diese Lösung zu wickeln. Vielen Dank! – nick

Antwort

3

Fügen Sie einfach Knopf 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

Arbeitete wie ein Charme! Danke vielmals! – nick

2

Es gibt keine Methode in EditText Layout die Daten zu löschen. Wenn Sie die Daten löschen wollen, müssen Sie

.setText(""); 

In Android-Dokumentation setzen selbst gibt es keine Möglichkeit, das Feld zu setzen.

3

haben ein Verfahren wie dieses

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

Dann wird ein auf Klick Zuhörer auf Ihre Schaltfläche nur festlegen, dass die Methode aufruft.

2

Möchten Sie Ihren Bearbeitungstext zurücksetzen?

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 
} 

Ich hoffe, dass Ihnen helfen

2

Genauer Code für Ihr Programm.

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 
     } 
    }); 

} 
2

edittext1.setText(StringUtility.EMPTY);. Es wird helfen.