Minesweeper-App Button setText

  • Hallo,


    erstelle zurzeit ein kleines Minesweeper Spiel.
    Die einzelnen Felder stelle ich mittels Buttons dar und in einem Array speichere ich welcher Button eine Bombe ist und welcher nicht.
    Jetzt möchte ich, nachdem ein Button angeklickt wurde und er keine Bombe ist zählen wie viele Bomben um ihn herum versteckt sind
    und die Zahl der Bomben als Text auf dem Button ausgeben. Das wollte ich eigentlich so machen:


    Das mit dem Zählen ist ja kein Problem nur die Zahl dann als Text auf button0 ausgeben zu lassen, damit habe ich Probleme.
    Wollte den Integer Wert von bb0 eigentlich mit

    Code
    String bb0s = Integer.toString(bb0);


    in einen String umwandeln und dann mit

    Code
    button0.setText(bb0s);


    Als Text auf dem Button ausgeben lassen. Hier erhalte ich aber den Fehler "button0 cannot be resolved".


    Hat jemand eine Lösung für mich?
    Vielen Dank im Vorraus

  • Mit XML:

    Code
    <Button
        	android:id="@+id/button0"
        	android:layout_width="wrap_content"
        	android:layout_height="wrap_content"
        	android:layout_alignBaseline="@+id/button1"
        	android:layout_alignBottom="@+id/button1"
        	android:layout_alignParentLeft="true"
        	android:text="@string/unPressed" />


    und:


    in der onCreate()-Methode. (Die Methode bb0() steht nicht in onCreate() sondern außerhalb)

  • Hi TDS95,


    na in dem du ihn als Klassenvariable setzt.


    Also so:

  • Vielen Dank titus, dank deiner Hilfe funktioniert jetzt fast alles.


    Mein nächstes Problem:



    Damit möchte ich eigentlich die Bomben um den gedrückten Button herum zählen und als Text ausgeben lassen.
    Nur irgendwie ändert sich der Text nicht.
    Hat jemand eine Idee?
    Kann das überhaupt so funktionieren?


    Vielen Dank im Vorraus

  • Das sollte so eigentlich funktionieren, aber die Anzahl der Bomben sollte ja auf dem gedrückten Button stehen, du ladest vorher jedoch einen anderen:

    Code
    button0 = (Button) findViewById(R.id.button1);


    Diese Zeile ist unnötig.


    Hast du den Aufruf der bb0-Methode wieder drin? Weiter oben ist sie bei dir nämlich noch auskommentiert.


    Zudem solltest du dir vllt überlegen, wie man die Überprüfung dynamisch gestalten kann. Wenn ich mich nicht irre sieht das bei dir bisher so aus:


    und dein bb0-Methode ist nur für den Button an Position 0, wo jeweils die benachbarten Felder 1, 6 und 7 auf Bomben geprüft werden. D.h. du hast sehr viele Methoden, für jeden Button jeweils eine Methode, was recht unschön ist.


    block_

Jetzt mitmachen!

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