Verschiedene Einstellungsmöglichkeiten elegeantim Code abfragen?

  • Hi,


    ich versuche mich gerade an einer etwas komplexeren Android-App, die gleichzeitig auch meine erste Android-App ist.
    Die App hat relativ viele Einstellungsmöglichkeiten (bspw. schneller, langsamer, Zeit messen, Fehler zählen, Rückwärts und noch mehr). All diese Einstellungen sollen an- oder ausgeschaltet werden können. Diese Funktionen werden in einer eigenen Activity vom Nutzer aktiviert oder deaktiviert. Danach übergebe ich sie an die Activity in der die Einstellungen benötigt werden.
    Sie werden dort in boolean-Variablen, die als Flags dienen, gespeichert.


    Da das Programm aber je nach Einstellung anders reagieren soll, muss ich die Einstellungen/Flags vor Ausführung einer Aktion ja abfragen. Das endet dann in ziemlich verschachtelten If-Abfragen mit otftmals mehreren else-if-Zweigen. manchmal aber auch nur If() ohne else-Zweig. Dazu kommt dann noch, dass die Steuerelemente oftmals dynamisch angezeigt werde, also wenn das und das eintritt wird diese Textview gezeigt, wenn was anderes eintritt wird ein Button gezeigt. Das ist dann natürlich auch noch abhängig von den Einstellungs-Flags.
    Da ich das in einigen Methoden machen muss, ist mein Activity-Code eigentlich nur von If-Abfragen übersäht. Sieht unschön aus, und ist an einigen Stellen auch nicht gerade übersichtlich. (Natürlich hab ich schon Code, den ich mehrmals brauche in eigene Methoden ausgelagert, was aber nicht unbedingt viel bringt. Abgefragt werden müssen die Varibalen ja trotzdem :) )


    Gibts dafür irgendeine elegantere Lösung? Ich wüsste nicht wie ich das anders lösen könnte.

  • Hi Holzkopf_Joe,


    ohne deinen Code zu kennen und ohne genau zu wissen was deine App macht bzw machen soll kann die Antwort nur Nein lauten.
    Wenn du wie du sagst dein komplettes App dynamisch halten möchtest, so das der User alles ändern kann wirst du an vielen if-else Kombinationen nicht vorbei kommen.


    Klar kann man Sachen auslagern kein Frage.(wenn es möglich sollte man das auch unbedingt tun)
    Aber wie gut oder schlecht das in deinem Fall ist bzw was man da verbessern könnte, kann man halt ohne deinen Code oder Software Design zu kennen schlecht beurteilen.


    Mfg Titus

  • Hi,


    danke für die Antwort. Das einfache "Nein" reicht mir schon aus. :)
    Mir gings darum, obs da nicht vielleicht doch sowas wie eine grundsätzlich andere Möglichkeit als die ganzen if-Abfragen gibt oder ob man das unter Android irgendwie anders handelt. Kam mir nur irgendwie blöd vor, jede Einstellung immer abzufragen, kenne aber eigentlich auch nix anders.
    Konnte jetzt nach dem zusammenfassen von einigen Abfragen mithilfe von logischen Verknüpfungen den Code etwas übersichtlicher machen.


    mal noch kurz was anderes: Wenn ich die Daten zu den Einstellungen vom Nutzer von der Einstellungs-Activity zur Ziel-Activity transportieren will, was würde sich dazu am besten eignen?
    Es sind etwa 5-15 Werte zu übertragen (alles primitive Datentypen). Mit intent.putExtra() vielleicht? Das hätte ich dann aber unter Umständen 15 mal dastehen. Oder mit einer eigenen Klasse, in die ich dann die Daten speicher? Oder SharedPreferences?
    Mal ganz unabhängig von meinem Vorhaben und Code, was ist da so die "professionellste" bzw. gängie Methode?


    putExtra() wäre wohl am schnellste und einfachsten. SharedPreferences etwas umständlicher, aber auch noch nach dem programmneustart evtl. erhalten(?). Die Methode mit der eigenen Klasse gefällt mir eigentlich am besten, damit könnte ich ja dann auch komplexe Datentypen temporär speichern.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!