OnClickListener - verschiedene Szenarien

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • OnClickListener - verschiedene Szenarien

    Hallo an alle,


    gleich vorweg ich bin ein Newbie was das Programmieren mit Java angeht.

    Mit meinem Freund zusammen arbeite ich an einer Trinkspiel App und wir stehen vor einem Problem, daher probiere ich mich mal in einem Forum.

    Wir programmieren in Android Studio mit Java.

    Also bitte wenn es geht, recht simpel erklären, dafür wäre ich sehr dankbar!


    Das Spiel grob erklärt:

    Es gibt einen Kartenstapel (ImageView) von dem Karten (es gibt verschieden Arten von Karten, Drawables(PNGs)) gezogen werden (es gibt 2 Buttons für Vor und Zurück).

    Unterhalb befinden sind 3 Ablagestapel (ImageButton) für Regelkarten.


    Aktuell ist es möglich die aktuell gezogene Karte mit Klick auf die Ablagestapel zu legen und sie durch gedrückt halten wieder zu „löschen“.


    Unser Ziel ist folgendes:

    • auf die Regel Ablagestapel sollen nur Regelkarten abgelegt werden können, keine anderen Kartenarten
    • wenn alle 3 Ablagestapel mit einer Regel belegt sind und es wird eine neue/4. Regel gezogen, soll es möglich sein diese mit einem Klick auf einen Ablagestapel auszutauschen. Sonst soll es nicht möglich sein.
    • wenn eine „Regel zerstören“-Karte gezogen wird, soll es möglich sein die Regeln mit einem Klick auf die jeweiligen Ablagestapel zu „zerstören“. Sonst soll es nicht möglich sein.


    Ist es möglich sowas über Arrays zu lösen oder müssen alle möglichen Karten im OnClickListener angegeben werden? Oder kann man den Karten Werte geben?

    Oder ist es überhaupt nicht so möglich, weil ich für verschiedene Szenarien trotzdem immer nur einen (den selben) Klick verwenden will und bräuchte ich verschiedene Klickarten?


    Ich habe schon mit if else Funktionen im OnClickListener rumprobiert, aber ich habe keine Ahnung wie ich mich auf die gezogene Karte beziehen kann, also wie ich das im Code schreibe.


    Ich hoffe es ist alles halbwegs verständlich und ich bin für jede Hilfe dankbar!


    Da ich nicht direkt weiß, was an Code benötigt wird, hier ein paar Angaben und Code, gerne sagen was ihr noch braucht an Code/Infos:

    Der ImageView wo die aktuelle Karte zu sehen ist/gezogen wird heißt einfach nur "iv".
    Alle Karten sind aktuell in einem Array angelegt, welches dann vor Spielbeginn gemischt wird.

    Java-Quellcode: ImageButton Regel-Ablagestapel 1/3

    1. btnRule1.setOnClickListener(new View.OnClickListener() {
    2. @Override
    3. public void onClick(View v) {
    4. currentCard1();
    5. }
    6. });
    7. btnRule1.setOnLongClickListener(new View.OnLongClickListener() {
    8. @Override
    9. public boolean onLongClick(View v) {
    10. btnRule1.setBackgroundResource(R.drawable.r003);
    11. return true;
    12. }
    13. });
    14. private void currentCard1 () {
    15. if (randomIconPointer >= 0 ) {
    16. btnRule1.setBackgroundResource( icons.getResourceId(getIcon(), 1));
    17. }
    18. }
    Alles anzeigen

    LG + Danke!!!