Volvo7700 / TeachersEssentials

Die neue Version der Lehrerapp
0 stars 0 forks source link

Methoden zum hinzufügen von Sachen (Timetable.setRoom bzw. Timetable.setClass) funktionieren nicht #2

Closed MuffinHD closed 2 weeks ago

MuffinHD commented 1 month ago

Ich hab selber bisserl rumprobiert, aber ich schaff es nicht des hinzubekommen. Ich weiß nicht, ob es daran liegen könnte, dass die Datenbank noch nicht befüllt ist, auf jeden Fall funktioniert es nicht. Es sagt mir, dass es eine out of bounds exception in line 128 ist, aber woher die kommt konnte ich nicht rausfinden. Die setSubject() function hab ich noch nicht ausprobiert, weil es da noch keine function gibt, bei der die id automatisch festgelegt wird. Ist jetzt erstmal alles nicht so wichtig, aber es sollt doch früher oder später funktionieren. danke fürs fixen oder rausfinden, warum des nicht geht.

Hier noch die Fehlermeldung: FATAL EXCEPTION: main Process: de.teachersessentials, PID: 22698 java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0 at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.util.Objects.checkIndex(Objects.java:359) at java.util.ArrayList.get(ArrayList.java:434) at de.teachersessentials.timetable.Timetable.setRoom(Timetable.java:128) at de.teachersessentials.ui.gallery.PopUpAdd.lambda$onCreate$1(PopUpAdd.java:50) at de.teachersessentials.ui.gallery.PopUpAdd$$ExternalSyntheticLambda1.onClick(D8$$SyntheticClass:0) at android.view.View.performClick(View.java:8047) at android.widget.TextView.performClick(TextView.java:17792) at android.view.View.performClickInternal(View.java:8024) at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) at android.view.View$PerformClick.run(View.java:31890) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:230) at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8919) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

MuffinHD commented 1 month ago

Ich hab mal bei setClass() versucht des zu fixen, jetzt ist auch kein Stack overflow mehr, aber wenn ih die function aufrufe und dann die Namen von allen Klassen im Arrray ausgeben will, wird null ausgegeben. Also irgendwas funktioniert nicht

Volvo7700 commented 4 weeks ago

Sorry, hab es leider erst jetzt gesehen... Ich schau mir das heute mal an 👍

Volvo7700 commented 4 weeks ago

So, ich denke ich hab den Code rund um setClass() jetzt repariert.

Um deine Frage zu setSubject() zu beantworten: Das haben wir offensichtlich einfach vergessen - danke für's Bescheid sagen, das wär mir nicht aufgefallen xD

Volvo7700 commented 4 weeks ago

Hab anscheined geschielt... Die Methode public static void setSubject(String name, String shortage, int color) generiert automatisch eine ID für das Objekt, das durch die angegebenen Argumente entsteht - wie bei setRoom und setClass auch

Falls die verschiedenen Eingabetypen missverständlich sein sollten;

setSubject(TimetableSubject subject) nimmt ein Objekt an, in dem der Index bereits angegeben ist --> damit man es bearbeiten kann, ohne ein neues mit den Änderungen erstellen zu müssen

setSubject(String name, String shortage, int color) nimmt die einzelnen Bestandteile eines TimetableSubject manuell an und baut daraus ein Objekt mit neuer, automatisch zugewiesener ID --> damit man ein neues erstellen kann

(int id, String name, String shortage, int color) ist wie das erste, bloß dass man kein Objekt sondern die Daten einzeln übergibt

und genauso für setRoom() und setClass() auch

Volvo7700 commented 3 weeks ago

@MuffinHD klappt es jetzt? Weil dann würde ich die Issue schließen

MuffinHD commented 2 weeks ago

Jo, hab zwar noch nicht genau geschaut aber müsst passen.

MuffinHD commented 2 weeks ago

Jo, hab zwar noch nicht genau geschaut aber müsst passen.

@Volvo7700

Volvo7700 commented 2 weeks ago

Perfekt, alles klar 👍 Dann schließe ich die Issue