Pergunta

Tenho que fazer um jogo de cartas de memorando no Android para o meu projeto. Por enquanto, estou no estágio em que tento descobrir a forma básica do meu aplicativo.

Eu li alguns tutoriais, mas não consigo descobrir como modificar muitos botões criados dinamicamente (ou seja, em 'para' loop), do XML ou mesmo do código. Para deixar minha pergunta clara aqui está o código que fiz

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

O que acontece quando executo o aplicativo, que tenho 30 toggleButtons na tela, cada um deles tem um formulário de número de 0 a 14 (15 pares). Era isso que eu queria ter, mas quando pressiono algum deles, além de mostrar as alterações do texto do botão de brinde, formam o que eu quero que esteja ligado e depois depois de outro pressione. Não consigo descobrir como controlar esse comportamento - eu realmente apreciaria algumas dicas sobre como conseguir isso estritamente em código ou usando XML. Outro caso é como usar o XML para definir esse layout e a aleatoriedade do texto definido nos botões.

Foi útil?

Solução

Se você adicionar

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

Para o seu loop interno para (), os botões sempre exibirão sua posição na lista, atribuída ou desativada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top