Beiträge von Airbus

    Oh ok, ich probiers mal mit dem ganzen Quelltext, vllt sind Ausschnitte nicht so gut geeignet dafür. Wenn du es dann immer noch nicht verstehst, kläre ich dich auf :-). Problem vom Post #44 besteht noch immer :(


    Das ist die MainActivity.java


    Hab mal ne Frage zum Befüllen der ArrayList, das klappt nicht so ganz. Habe diese Methode zum Befüllen:


    Java
    private ArrayList<DataObject> getDataSet() {
            String string = "";
            string = TextTransmitter;
            ArrayList results = new ArrayList<DataObject>();
                DataObject obj = new DataObject(string);
                results.add(obj);
                return results;
        }





    Diese rufe ich in meiner StoryLogik() Methode auf, so:




    Die Variable TextTransmitter übergibt den Wert in den Array und diesen Wert sollte er eigentlich verwerten, aber die Variable ist IMMER leer, versteh nicht warum. Im Debugger ebenfalls, immer leer.Wenn ich dann mit dem Cursor weitergehe also:



    Java
    cursorTEXT.moveToNext();
            str = cursorTEXT.getString(cursorTEXT.getColumnIndex("TEXT"));
            TextTransmitter = str;
            getDataSet();
        }

    Wird auch nichts eingetragen, was mache ich denn falsch?

    Ja hab das getan, funktioniert super und ich kann auch die Werte aus den Zeilen auslesen ohne Probleme.
    Du sagtest ja for-Schleife entfällt. Meine Lösung wäre es jetzt einfach für jeden Abschnitt bis zu einer Entscheidung immer eine eigene Methode.


    Sprich "public void ersterAbschnitt" liest dann Zeile 1-4 raus, dann wird Zeile 5-6 in die Entscheidungsfelder eingetragen. Dann mit ner if-Abfrage abfragen welcher Zweig genommen wurde und dann z.B. Methode zweiterAbschnitt bzw. dritter Abschnitt aufrufen.

    Eine Verständnisfrage. Ich habe jetzt die Datenbank mit zwei Tabellen erstellt. Aber wie bekomme ich jetzt meine Daten darein? Ich kann in der MainActivity ja ein "myDB.insertData(STRING)" aufrufen und dann bin ich aber wieder bei meinem Array und einer for-Schleife bis alle Daten in die DB eingelesen wurden oder liege ich ganz falsch?? Kann ich nicht manuell wie in Microsoft Access die Daten eingeben und so die Datenbank dann aufrufen?


    Dankee

    Jo stimmt, könnte ich noch ändern bzw. werde ich auch noch ändern aber mir ist erstmal wichtig, die Grundfunktionen hinzubekommen, besonders das Entscheidungszeug und diese Verzögerung. Das Datebankzeugs ist ja einfacher.


    Könntest Du noch was zu meiner Idee sagen?

    So, Erfolg!


    Habe einen RecyclerView, mit ArrayList, und diese Liste wird bestückt. Wenn ich Thread.sleep() anwende, und bspw. 1000 Millisekunden eintrage, dann laggt das ganze und ich habe so 8 Sekunden einen eingefrorenen Bildschirm dann wird auf einmal alles angezeigt. Ist glaube ich nicht so elegant.


    Nächste Frage: Wenn ich jetzt Entscheidungen einbauen will, mein Vorschlag. Habe ja ein String Array mit dem ganzen Text drin (jeder Satz ist indexiert). Am besten wäre es doch jetzt eine for-Schleife zu erstellen, die bis zum Index 3 läuft. So werden die ersten 3 Sätze angezeigt. Jetzt kommt eine Entscheidung, die linke Entscheidung bekommt den Stringindex 4 und die Rechte Index 5. Wenn jetzt jmd links drückt, dann springt man weiter zu Index 6, bei rechts zu Index 12.


    Muss man das im Adapater realisieren?

    Aaaachso, na das erklärt ja einiges.


    Ja in dem onBindViewHolder steht ja "holder.Tx_storyTexts.setText(storyTexts[position]);", setzt diese Zeile nicht ein ListItem nach dem anderen bis die while-Schleife fertig ist?

    Bin gerade an einer Lösung dran, die nicht funktioniert und ich nicht verstehe warum. Also habe hier mein onBindViewHolder, der die Textboxen auf dem Bildschirm erscheinen lässt. Jedes mal, wenn er eine Textbox erstellt hat, soll eine 5 sekündige Pause eingelegt werden, bis das nächste erscheint. Habe das so gelöst:



    DerTimer() wird dann aufgerufen mit diesem Code:


    Wenn ich die App starte, dann bekomme ich sofort alle Einträge ohne Verzögerung angezeigt, warum?

    Jop, bekomme ich bestimmt hin. Aber wo ich mir jetzt die Zähne kaputt beiße ist diese Verzögerung. Wie kann man eine einfache Verzögerung einbauen? Habe einige Möglichkeiten ausprobiert, aber es hat entwender nicht funktioniert oder es war ellenlanger Code, das kann ich mir nicht vorstellen dass es so lange dauert? Gibt es nicht sowas wie eine pause() Funktion mit Millisekundenwert als Parameter?

    Vllt reden wir auch ein bissl aneinander vorbei. Also ich meine es genauso wie die App zeigt, also der Link, den ich gepostet habe. Der User öffnet die App und es kommen direkt Nachrichten rein die aber einen 2 Sekunden Abstand haben DAS möchte ich einbauen. Warum? Weil der Spieler ja nicht so schnell lesen kann das eine Textbox bis zur anderen bis zur Entscheidung erscheint. Verstehst du was ich meine?

    Aber Bilder kommen evtll. noch für mich in Frage :-).
    Ok, dann würde ich sagen mache ich das erstmal mit Strings und ImageViews. Aber du kannst dir vorstellen, dass der Text ca. ein 200 Seiten Buch umfasst :D. Und sooo viele Strings oje :-).
    Du siehst ja in der App kommen die Dialoge zeitversetzt an ca. 2 Sekunden bis eine Entscheidung kommt. Sorry dafur aber kannst du mir auf die Sprünge helfen wie das grob zu realisieren ist? Hat nichts mit Faulheit zu tuen glaub mir habe schon mit delays gearbeitet und allem möglichen Mist der nie gefunzt hat und zu statisch war. Ist das eine gesamte große Schleife mit Verzweigungen drin? Sorry :(

    Ok, klar ist sehr individuell.


    Genau, in meiner RecyclerView habe ich einen Adapter. Das mit dem Syncadapter wäre gar nichts für mich. Habe mir jetzt mal ein Tutorial bzgl. SQLite angeschaut mit den üblichen Create,Read,Update und Delete Methoden und das sieht schon viel besser aus und ist auch einfach zu verstehen. Eine allgemeine Frage dazu: Wenn ich z.B. 1.000 Textdialoge in der App haben, dann muss ich ja vorher die Daten selbstständig irgendwo reinschreiben, aber wo? Bis jetzt habe ihc nur gesehen, dass man Text in der App eingibt, auf speichern klickt und dieser in der Datenbank gespeichert wird, also zur Runtime. Aber wie kann ich eine Datenbank im Voraus füllen? Muss ich einfach dann unmittelbar nach der MainAcitvity Class den Datenbankaufruf dazu starten zum Hinzufügen?

    Noch mal 'ne allgemeine Frage. Wie lange bedarf es ca. bis ein Anfänger diese App geschrieben hat? Komme an bestimmten Stellen nicht weiter und frage mich ob das überhaupt machbar ist. Habe jetzt eine RecyclerView erstellt und diese zeigt mir String Values an, die ich hart gecodet habe. Jetzt möchte ich die Daten von einer Datenbank beziehen, habe ich IRGENDWAS mit diesem JSON zu tuen? Habe das im Zusammenhang mit "bezieht die Daten vom Server" gehört, aber was ist wenn der User offline ist und die App neue Daten benötigt? Was ist wenn der Server offline ist und keine Daten mehr beziehen kann? Oder ist das lokal aufm Gerät?


    Fragen über Fragen :)