Zum Inhalt springen

Java programmieren, Bitte helft mir!


Philip H

Empfohlene Beiträge

Hallo alle zusammen.

Ich bin gerade dabei, ein kleines Programm für mein Android Smartphone zu schreiben, aber irgendwie funktioniert nicht alles so, wie es sollte...

Ich will eigentlich aus einem Wert, den der Benutzer eingeben kann, zwei weitere Werte berechnen und diese dann anzeigen.

Allerdings friert das Programm immer ein, wenn ich den Button zum Berechnen klicke.

Code:

public void Umrechnung (View view){

 

double zahl1;

 

double Ergebnis1;

double Ergebnis2;

 

 

EditText Feld1 = (EditText)findViewById(R.id.editText1);

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText4);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText5);

 

if (Feld1.getText().toString().length() == 0){

return;

}

 

 

zahl1 = Integer.parseInt(Feld1.getText().toString());

 

Ergebnis1 = (zahl1 + 273.15);

Ergebnis2 = (((zahl1 + 273.15) * 1.8) + 32);

 

FeldErgebnis1.setText(String.valueOf(Ergebnis1));

FeldErgebnis2.setText(String.valueOf(Ergebnis2));

 

}

 

public void reset5 (View view){

EditText Feld1 = (EditText)findViewById(R.id.editText1);

 

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText4);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText5);

 

Feld1.setText(String.valueOf(0));

FeldErgebnis1.setText(String.valueOf(0));

FeldErgebnis2.setText(String.valueOf(0));

 

 

 

}

 

public void Umrechnung2 (View view){

 

double zahl1;

 

double Ergebnis1;

double Ergebnis2;

 

 

EditText Feld1 = (EditText)findViewById(R.id.editText2);

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText6);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText7);

 

if (Feld1.getText().toString().length() == 0){

return;

}

 

 

zahl1 = Integer.parseInt(Feld1.getText().toString());

 

Ergebnis1 = (zahl1 + 273.15);

Ergebnis2 = ((Ergebnis1 * 1.8) + 32);

 

FeldErgebnis1.setText(String.valueOf(Ergebnis1));

FeldErgebnis2.setText(String.valueOf(Ergebnis2));

 

 

}

 

public void reset6 (View view){

EditText Feld1 = (EditText)findViewById(R.id.editText2);

 

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText6);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText7);

 

Feld1.setText(String.valueOf(0));

FeldErgebnis1.setText(String.valueOf(0));

FeldErgebnis2.setText(String.valueOf(0));

 

 

 

}

 

 

public void Umrechnung3 (View view){

 

double zahl1;

 

double Ergebnis1;

double Ergebnis2;

 

 

EditText Feld1 = (EditText)findViewById(R.id.editText3);

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText8);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText9);

 

if (Feld1.getText().toString().length() == 0){

return;

}

 

 

zahl1 = Integer.parseInt(Feld1.getText().toString());

 

Ergebnis1 = (zahl1 + 273.15);

Ergebnis2 = ((Ergebnis1 * 1.8) + 32);

 

 

FeldErgebnis1.setText(String.valueOf(Ergebnis1));

FeldErgebnis2.setText(String.valueOf(Ergebnis2));

 

}

 

public void reset7 (View view){

EditText Feld1 = (EditText)findViewById(R.id.editText3);

 

 

EditText FeldErgebnis1 = (EditText)findViewById(R.id.editText8);

EditText FeldErgebnis2 = (EditText)findViewById(R.id.editText9);

 

Feld1.setText(String.valueOf(0));

FeldErgebnis1.setText(String.valueOf(0));

FeldErgebnis2.setText(String.valueOf(0));

 

 

 

}

 

Das Programm soll im Grunde eine Temperatur in eine andere Umrechnen (z.B: °C in °F oder °F in °K,...).

 

Das Eingabefeld sieht wie folgt aus:

 

3 mal je 3 Felder für eingabe und Resultatausgabe der Temparaturen (°C, °F, °K).

 

Darunter die drei Button um das ganze zu berechnen und schliesslich noch einen Reset Button.

 

Zum Reset Button habe ich auch noch eine kleine Frage:

Wie schaffe ich es, dass der Reset Button mehrere Befehle durch einmaliges Klicken ausführt?; ich habs schon so probiert:

-->android: onClick="reset5, reset6, reset7";

-->android: onClick="reset5";

android: onClick="reset6";

android: onClick="reset7";

 

(Im Code habe ich zwischen : und o natürlich keinen Lehrschlag, aber hier lässt sich das nicht vermeiden da ansonsten das passiert: android:onClick="..." )

 

Aber keine der beiden Methoden hat funktioniert?, wie muss ich den Code veränder, damit der Button alle Felder resetet?

 

 

Vielen Dank für eure Antworten und Bemühungen schon im Voraus.

 

Mit freundlichen Grüssen

 

Philip Helbling

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mach die Initiierung der Objekte am Anfang der Klasse. Also etwa so:

 

public class MyActivity extends Activity {

//hier die Objekte initiieren

TextView tv1;

EditText et1;

 

@Override

public void onCreate(...){

 

//hier die Objekte erstellen, Views finden, Variablenwert setzen...

 

}

 

//weitere Methoden

 

}

 

Geht das jetzt?

Sonst schicke mir doch mal dein Android-Projekt, per PN kriegst du wenn gewünscht meine E-Mail. ;)

Fragen beantworte ich natürlich immer gerne.

 

Zur Button-Frage:

Zum Reset Button habe ich auch noch eine kleine Frage:

Wie schaffe ich es, dass der Reset Button mehrere Befehle durch einmaliges Klicken ausführt?; ich habs schon so probiert:

-->android: onClick="reset5, reset6, reset7";

-->android: onClick="reset5";

android: onClick="reset6";

android: onClick="reset7";

In deinem Code kann ich keinen Button finden. Wenn du diese jedoch wie die EditText erstellt hast, kannst du dem Button einen OnClickListener implementieren und unendlich viele Befehle dran knüpfen:

 

button1.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v){

//unendlich viele Befehle.... :D

Befehl1;

Befehl2;

Befehl3;

...

}

});

 

Ich nehme mal an, dein gepostetes Beispiel ist nicht vollständig (wo ist die Activity-Class und deren OnCreate?). Des weiteren hat es noch einige Fehler.:rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Christian Thomann

Stellenanbieter: Können Sie für uns in JAVA programmieren?

Programmierer: Okay, wenn Sie die Reisekosten übernehmen!

 

 

Ironieren bis zum Sarkasmus! :p

 

 

Nichts für Hoppla! Aber das musste einfach hier raus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...