Closed MuffinHD closed 2 weeks 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
Sorry, hab es leider erst jetzt gesehen... Ich schau mir das heute mal an 👍
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
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
@MuffinHD klappt es jetzt? Weil dann würde ich die Issue schließen
Jo, hab zwar noch nicht genau geschaut aber müsst passen.
Jo, hab zwar noch nicht genau geschaut aber müsst passen.
@Volvo7700
Perfekt, alles klar 👍 Dann schließe ich die Issue
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)