Bar Kassenseystem

  • Servus euch allen,


    Vorweg falls ich in dem falschen Forum bereich bin, entschuldige ich mich schon mal! :-[


    Jetzt zum Thema:

    Der Zeit versuch ich mich an einer Barkassen-App für mich und meine Kollegen.



    Bis jetzt habe ich alles mit Buttons gestalltet und auch den buttons den jeweiligen seiten zugewiesen also das man bei dem Klick auf die nexte seite oder wider zurück kommt.
    Das Problem liegt für mich aber in dem wichtigsten teil, ich will das wenn man zum beispiel auf den Button(2cl) Klickt, er das dann in einer Listview dann es so anzeigt:"2cl x1 =0,50€" und sich die menge, also das x1 nach mehrmaligem klicken summiert und auch die summe dementsprechend addiert wird und ich es dann auf einer anderen seite die endsumme auf eine bestimmte Person buchen kann und dort auch abgespeichert wird.


    Bin echt am überlegen wie was wo habe mir schon videos ohne ende angeschaut, komm auf keine richtige Lösung ich hoffe hier kann mir jemand helfen!


    Vielen Dank schon mal an alle :)

  • Vorweg: für genau so etwas ist dieser Forumsbereich da. :)


    Also dafür gibt es durchaus mehrere Möglichkeiten. ;)


    Die zentrale Frage ist, wie genau sich das alles verhalten soll. Wird die Liste nach Eingabe gefiltert? Oder nach Wert? Oder nach Anzahl der Werte? Willst Du das im Nachhinein aufsplitten wollen?


    Nehmen wir beispielsweise folgende fiktive Bestellung: 4cl, 2cl, 1/3l, 5dl, 4cl, 2cl, 2cl, 2cl, 4cl
    (Den Notruf wegen der Alkoholvergiftung lassen wir mal außer Acht, da der ja für euch kostenlos ist. ;))


    (Zur Erklärung: 5dl = 1/2l = 0,5l = Hefeweizen, 1/3l = 0,33l = Bierchen, 2cl = Schnappes, 4cl = doppelter Schnappes)


    Du hast jetzt mindestens zwei Möglichkeiten zur Ausgabe des Ganzen:

    Zitat

    1cl x 0 = 0,00€
    2cl x 4 = 2,00€
    4cl x 3 = 3,00€
    1/3l x 1 = 2,50€
    5dl x 1 = 3,00€


    Hier hast Du einfach eine HashMap oder ein Dictionary oder sonstwas, welches sämtliche Deiner Tasten als keys hat.
    Wann immer eine Taste gedrückt wird, addierst Du die bestellte Menge. Dein ListAdapter geht dann einfach die einzelnen Keys durch und baut sich die Anzeige zusammen.


    Zitat

    4cl x 3 = 3,00€
    2cl x 4 = 2,00€
    5dl x 1 = 3,00€
    1/3l x 1 = 2,50€


    Dies ist ein bisschen komplexer, dafür aber flexibler.
    Zunächst einmal solltest Du Dir eine Zuordnung Name->Preis(->Menge) machen. Bei jeder Bestellung schaust Du nach, ob Du die zum Button gehörende Zuordnung Name->Preis schon hast. Falls ja, setzt Du die Anzahl um eins nach oben. Falls nein, fügst Du es Deinem Array hinzu.
    Die Sortierung ergibt sich dann aus der Reihenfolge der (ersten) Bestellung jeder Mengeneinheit.


    Wenn Du so richtig cool bist, baust Du Dir einen eigenen Array Controller für das Array und Deinen eigenen Objekttypen, der das Hinzufügen von Objekten gemäß Deiner Vorstellung umsetzt.


    Dann brauchst Du nur arrayController.addDrinkNamed("2cl"); aufrufen, und die Methode schaut eigenständig, ob es diesen Wert schon gibt (Menge um 1 erhöhen) oder nicht (Wert ins Array packen).


    Ist ein Super Übungsprojekt. :)


    Berechnung kannst Du dann auch in den Controller packen. Im Prinzip eine einfache Schleife:

    Code
    long result = 0;
    for(Drink drink : drinksArray) {
      result += drink.getAmount() * drink.getPrice();
    }
    return result/100;


    Pro-Tipp: speichere auf jeden Fall die Einzelbeträge in Cent und rechne sie dann in Euro um.
    (Oder Dollar oder wie auch immer. Auf jeden Fall die kleinste mögliche Einheit.)
    Fließpunktzahlen haben die Eigenschaft, unglaublich große Wertebereiche darstellen zu können. Sie haben aber auch den Nebeneffekt, sehr ungenau zu werden.


    Alles Weitere ist dann eine Frage des Datenmodells.
    Du kannst beispielsweise für jeden Deiner Homies/Bros/wie auch immer das heutzutage heißt, einen eigenen fiktiven Account anlegen.
    Beispielsweise mit Spitzname und Budget für den Abend.
    Dann kannst Du das Ganze in einen Pager einbetten und die Liste wird dann für jeden einzeln angezeigt. Und da Du auch das Budget des Abends eingetragen hast, wird die Anzeige beispielsweise gelb, wenn er nur noch sagen wir 4€ hat und die Eingabe sperrt sich komplett, sobald er rechnerisch pleite ist.


    Oh, man kann da soooo viel draus machen. ^^

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • All diese Dinge werden über einen Adapter geregelt.


    Das ListView fragt den Adapter nach den Daten, der Button sagt dem Adapter, er solle Daten hinzufügen, der Adapter informiert das ListView über geänderte Daten, das ListView fragt den Adapter nach den Daten.


    Ein Beispiel zur Arbeit mit ListViews findest Du bei im offiziellen Android List View API Guide.


    Wenn Du damit die ungefähre Funktionsweise verstanden hast, hilft Dir sicherlich das inoffizielle ListView Tutorial von Lars Vogel weiter.


    Ich ging davon aus, dass Dir das bewusst ist, aber falls nicht: ohne Erfahrungen in der Programmierung steht Dir viel Lernarbeit bevor. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

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