1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. paulinchen, 13.12.2010 #1
    paulinchen

    paulinchen Threadstarter Junior Mitglied

    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
     
  2. DieGoldeneMitte, 13.12.2010 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    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:
     
    paulinchen gefällt das.
  3. paulinchen, 13.12.2010 #3
    paulinchen

    paulinchen Threadstarter Junior Mitglied

    Code:
    setText( Integer.toString(X))
    
    das wars, vielen Dank
     
  4. paulinchen, 13.12.2010 #4
    paulinchen

    paulinchen Threadstarter Junior Mitglied

    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));
                    
                    }
               
            });
     
  5. DieGoldeneMitte, 13.12.2010 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Du fügst in dem Moment, wenn sich der Text ändert, einen Listener für den Button ein - anstatt direkt zu rechnen.
     
  6. paulinchen, 13.12.2010 #6
    paulinchen

    paulinchen Threadstarter Junior Mitglied

    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:
     
  7. paulinchen, 14.12.2010 #7
    paulinchen

    paulinchen Threadstarter Junior Mitglied

    Weiß nicht, was ich jetzt anders gemacht habe, aber jetzt gehts...
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Welche Schriftarten werden von Android intern unterstützt ? Android App Entwicklung 16.03.2017
QR-Result in EditText darstellen Android App Entwicklung 02.01.2017
EditText für IP-Adressen? Android App Entwicklung 19.10.2016
Android Studio required booelan find int Android App Entwicklung 26.09.2016
int variable immer speichern Android App Entwicklung 03.08.2016
Du betrachtest das Thema "von int zu EditText" im Forum "Android App Entwicklung",