Question

Je l'ai à faire un jeu de cartes mémo dans Android pour mon projet. Pour l'instant je suis au stade où j'essaie de comprendre la forme de base de mon application.

J'ai lu quelques tutoriels, mais je peux; (.-À-dire dans « pour » boucle) t comprendre comment modifier un grand nombre de boutons créés dynamiquement, à partir de XML, ou même du code. Pour ma question claire est ici le code i fait

package piotrek.test1;



import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
import java.util.ArrayList;
import java.util.*;


public class test1 extends Activity implements View.OnClickListener {

private ArrayList<Integer> listaKart = new ArrayList<Integer>();    
private int rozmiar = 0;    
private int licznik = 0;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    TworzKarty();
    //tu tworzymy definicje nowego wygladu (layout) czyli w formie tabeli

    TableLayout layout = new TableLayout (this);
    layout.setLayoutParams( new TableLayout.LayoutParams(4,5) );

    //ustawienie odstepow do 'scian'

    layout.setPadding(10,10,10,10);

    //petle 'populujace' miejsca w tabeli przyciskami

    for (int f=0; f<=5; f++) {
        TableRow tr = new TableRow(this);
        for (int c=0; c<=4; c++) {
            ToggleButton b = new ToggleButton (this);
            //b.setText(""+f+c);
            b.setText(Integer.toString(listaKart.get(licznik)));
            b.setTextSize(10.0f);
            b.setTextColor(Color.rgb( 100, 200, 200));
            b.setOnClickListener(this);
            tr.addView(b, 60,60);
            licznik++;
        } // for
        layout.addView(tr);
    } // for

    super.setContentView(layout);
} // ()


public void TworzKarty(){

for (int i=0;i<=14;i++){
    this.listaKart.add(i);
    this.listaKart.add(i);
}
//pomieszanie kolejnosci numerków
Collections.shuffle(listaKart);
rozmiar=listaKart.size();


}



public void onClick(View view) {
//((Button) view).setText("*");
//((Button) view).setEnabled(false);
if (((ToggleButton) view).isChecked()) {
    Toast.makeText(test1.this, Integer.toString(rozmiar), Toast.LENGTH_SHORT).show();
} 
else {
    Toast.makeText(test1.this, "Not checked", Toast.LENGTH_SHORT).show();
}
}




} // class

Ce qui se passe lorsque i exécuter l'application est que i ai 30 ToggleButtons sur l'écran, chacun d'eux a une forme de nombres 0 à 14 (15 paires). Voilà ce que je voulais avoir, mais quand je presse l'un d'eux boutons en plus de montrer le texte change bouton pain grillé forment ce que je veux que ce soit sur ON, puis après une autre pression sur OFF. Je ne peux pas comprendre comment contrôler ce comportement - je voudrais vraiment apprécier quelques conseils sur la façon d'y parvenir strictement en code ou en utilisant XML. Un autre cas est de savoir comment utiliser XML pour définir cette mise en page et le caractère aléatoire de l'ensemble du texte sur les boutons.

Était-ce utile?

La solution

Si vous ajoutez

b.setTextOff(Integer.toString(listaKart.get(licznik)));
b.setTextOn(Integer.toString(listaKart.get(licznik)));

à votre boucle intérieure pour (), les boutons toujours afficher leur position dans la liste, que ce soit activée ou désactivée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top