Tablelayout mit Arrayadapter - andere Lösungen?

  • Heyho! :)


    Ich studiere Medieninformatik und hab gerade eine Vorlesung zur Android-Programmierung. Wir müssen Tic Tac Toe bauen, am Ende soll es so aussehen.


    Mein Problem ist jetzt, dass ich die 9 Kästchen mithilfe eines TableLayouts "gezeichnet" hab; jetzt wollte ich sie mit einem ArrayAdapter verbinden, damit ich über den zweidimensionalen Array auch auf die 9 Kästchen zugreifen kann. Nur sagt mir Google gerade, dass man einen ArrayAdapter nur mit Listviews und dergleichen verknüpfen kann.. ich weiß nun leider gar nicht, wie ich sonst an das Problem herangehen soll. Hat jemand von euch einen Tipp?
    Ich überlege schon die ganze Zeit rum, ob ich nicht etwas 'anderes' als den ArrayAdapter nehmen muss, aber da find ich im Inet auch keine Alternative.. Oder etwas anderes als das Tablelayout?


    Ich weiß wirklich gar nicht, wo ich ansetzen soll, deswegen wäre ich für jeden Tipp dankbar :)

  • Warum nutzt du nicht ein normales Array ???
    Und beim Aufbau deines Tablelayouts verknüpfst du einfach deinen OnClicklistener mit einem Parameter (zb TAG) damit du weisst wo geklickt wurde. Also kannst ja von oben links 0 -8 durchnummerrieren.


    0 = [0,0]
    1 = [1,0]
    2 = [2,0]


    3 = [0,1]
    4 = [1,1]



    usw.

  • Heyho! Danke für deine Hilfe. Aber den 2-d-Array kann ich nicht umgehen, den hat mein Dozent vorgeschrieben. :/


    Und ich hab's jetz versucht "per Hand" zu verknöpfen,


    board[0][0].findViewById(R.id.row0_0);



    aber das funktioniert auch nicht. :(

  • Du sollst ja auch dein 2D Array nicht weglassen.


    Aber du kannst Dir doch einfach ein Objekt bauen , wo der Index deines Spielfeldes, der View und der jeweilige Spielsteinzustand drin steht (x,o, leer) .
    Das befüllst du am Anfang und gut ist.


    Was für Views sind die die Spielsteine (Imageviews) ?


    Dann sammelst du die einfach am Anfang des Spieles ein.



    class meinobjekt() {


    int id;
    Imageview iview;
    int zustand ;



    public meinobjekt(paramneter zum erschaffen){


    this.id = parameter_index;
    this.iview = parametr_view;
    this.zustand = 0; // zb Int: 0 = leer 1=x 2=O


    }


    }



    Ansonsten zeig doch mal ein wenig code bzw woran es konkret klemmt,
    findView sollte eigentlich immer funktionieren.

Jetzt mitmachen!

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