Hi!
Ich schreibe gerade an einem Programm (Android Studio 1.4, zuletzt aktualisiert 28. September), das bestimmte Werte verrechnen soll und am Ende eine Art Bastelanleitung ausspuckt. Es funktioniert alles gut, bis man den Knopf "Rechnen" betätigt; da stürzt die komplette App ab, anstatt einen Text auszugeben, in der virtuellen Maschine und auf dem Smartphone ebenfalls. Das selbe passiert auch, wenn man auf ein Label klickt (da macht es mir allerdings nicht ganz so viel aus) und ich habe nicht den geringsten Schimmer, warum. Bisher habe ich den Fehler in den Methoden in briefumschlagRechnen() gesucht und auch einige gefunden, leider allerdings nicht den großen. Da der Absturz auch bei einem klick auf ein Label passiert, vermute ich irgendetwas bei der Erstellung des Buttons oder dass ich die Funktion rechnen() selbst in irgendeiner Weise falsch geschrieben habe. Hier ist eine gekürzte Version meines Programmcodes (alle Textstellen, in denen "rechnen" auftaucht, wurden hier niedergeschrieben):
Rechner.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | //(...) android.widget.Button btnRechnen; btnRechnen = (android.widget.Button) findViewById(R.id.rechnen); btnRechnen.setVisibility(View.INVISIBLE); public void rechnen() { if(gedaechtnis == "Briefumschlag") { briefumschlagRechnen(); } if(gedaechtnis == "Punchboard-Box") { punchboardBoxRechnen(); } if(gedaechtnis == "Teetüte") { teetueteRechnen(); } if(gedaechtnis == "Dreiecksbox") { dreiecksboxRechnen(); } } public void briefumschlagRechnen() { double a = 0; double b = 0; try { a = Double.parseDouble((String) textField0.getText().toString()); b = Double.parseDouble((String) textField1.getText().toString()); double s = (a+b) / Math.sqrt(2) + 2; s = Math.round(10.0 * s) / 10.0; double f = a/Math.sqrt(2) + 1; f = Math.round(10.0 * f) / 10.0; textPane.setVisibility(View.VISIBLE); textPane.setText("Die Maße des Papiers für einen Briefumschlag mit den Maßen " + String.valueOf(a) + "cm *" + String.valueOf(b) + "cm:" + "\n" + "- Seitenlänge des Quadrats: " + String.valueOf(s) + "cm" + "\n" + "- Falz: " + String.valueOf(f) + "cm"); } catch(Exception e) { textPane.setVisibility(View.VISIBLE); textPane.setText("Der Eingabewert muss eine Zahl sein;" + "\n" + "Kommata müssen durch Punkte ersetzt werden;"); } } //die anderen textRechnen()-Methoden sind sehr ähnlich aufgebaut, das Problem tritt bei allen auf. //(...) |
activity_rechner.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 | //(...) <Button style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Rechnen" android:id="@+id/rechnen" android:onClick="rechnen" android:clickable="true" android:layout_below="@+id/textField3" android:layout_centerHorizontal="true" /> //(...) |
Ich bin wirklich über jeden Hinweis froh! (Falls mehr Informationen zur Problembehebung benötigt werden, werde ich diese selbstverständlich ran schaffen)
Danke schon mal im Voraus,
PollyOlly