von int zu EditText

P

paulinchen

Gast
Hallo,

ich möchte ein Berechnungsprogramm schreiben. Dazu muss ich aus dem EditText die Zahlen in integer umrechnen, um damit rechnen zu können.

Anschließend muss ich die Werte doch wieder in Text umwandeln, damit ich sie in die EditText stecken kann, wie mach ich das?

Anbei mal ein Ausschnitt aus dem Code, ich bekomme immer ein FC beim drücken auf den Button und ich denke, es liegt daran, dass er die Variable nicht umwandelt.
Code:
        HS = (EditText) findViewById (R.id.StundenText);
        H = Integer.parseInt(HS.getText().toString());
        MS = (EditText) findViewById (R.id.MinutenText);
        M = Integer.parseInt(MS.getText().toString());
        SS = (EditText) findViewById (R.id.SekundenText);
        S = Integer.parseInt(SS.getText().toString());
        
        Button btn = (Button) findViewById (R.id.Berechne);
        
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                H = H*60;
                    M = (M+H)*60;
                E = S+M;
                Erg = (EditText) findViewById (R.id.LaengeText);
                Erg.setText(E);

Danke
 
Wenn ERG.setText(X) einen int bekommt, heisst das, dass er den Text aus aus der Resource mit der entsprechenden id nimmt. Das ist gedacht für setText( R.string.meldung ), also in Deinem Beispiel sicher nicht das, was Du willst.

Wenn Du einen Int als Text ausgeben willst, musst Du ihn in einen Text sprich String umwandeln. Also setText( Integer.toString(X)) oder auch setText( ""+X ).

Achja, und wenn Du die Werte der anderen Felder nicht im onClickListener deines Ergebnisknopfes ausliest, bekommst Du nicht die Werte, die dort zum Zeitpunkt des Buttondrucks drinne stehen. :winki:
 
  • Danke
Reaktionen: paulinchen
Code:
setText( Integer.toString(X))

das wars, vielen Dank
 
Jetzt hab ich allerdings ein neues Problem.

Und zwar wird beim drücken des Buttons jedes mal neu berechnet, auch wenn in den EditTexts gar nichts geändert wurde.

Ich hab jetzt versucht mittels des Textwatchers die Eingabe in die EditText zu überwachen, aber irgendwie steh ich da auf dem Schlauch.
Code:
public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub
        Button btn = (Button) findViewById (R.id.Berechne);
        
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                    HS = (EditText) findViewById (R.id.StundenText);
                    TextWatcher watcher = null;
                HS.addTextChangedListener(watcher);
                H = Integer.parseInt(HS.getText().toString());
                MS = (EditText) findViewById (R.id.MinutenText);
                MS.addTextChangedListener(watcher);
                M = Integer.parseInt(MS.getText().toString());
                SS = (EditText) findViewById (R.id.SekundenText);
                SS.addTextChangedListener(watcher);
                S = Integer.parseInt(SS.getText().toString());
                Form = sF.getSelectedItem().toString();
                Einheit = sE.getSelectedItem().toString();
                
                  H = H*60;
                    M = (M+H)*60;
                E =E+M+S;
                
                Erg = (EditText) findViewById (R.id.LaengeText);
                Erg.setText(Integer.toString(E));
                
                }
           
        });
 
Du fügst in dem Moment, wenn sich der Text ändert, einen Listener für den Button ein - anstatt direkt zu rechnen.
 
Also muss ich nach dem onTextChanged den setOnClickListener einfügen?

Aber wann rechne ich dann?

Brauch ich denn für jedes EditText einen Textwatcher?

Tschuldige für die vielen Fragen, aber ich steh noch total am Anfang mit der Android Programmierung :rolleyes2:
 
Weiß nicht, was ich jetzt anders gemacht habe, aber jetzt gehts...
 

Ähnliche Themen

S
Antworten
0
Aufrufe
592
Sergio13
S
S
Antworten
17
Aufrufe
554
jogimuc
J
stele
Antworten
4
Aufrufe
1.159
stele
stele
Zurück
Oben Unten