Pregunta

Tengo que hacer un juego de cartas de notas en Android para mi proyecto. Por el momento estoy en la etapa en que trato de averiguar la forma básica de mi aplicación.

He leído algunos tutoriales, pero puedo; (. Es decir, en 'para' bucle) t encontrar la manera de modificar una gran cantidad de botones creados de forma dinámica, a partir de XML, o incluso desde el código. Para hacer mi pregunta clara aquí está el código que hice

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

Lo que sucede cuando i ejecutar la aplicación es, que tengo 30 ToggleButtons en la pantalla, cada uno de ellos tiene una forma número de 0 a 14 (15 pares). Eso es lo que quería tener, pero cuando pulso los botones de ellas además de mostrar los cambios en el texto del botón tostadas forman lo que yo quiero que sea en ON y luego después de otra prensa en OFF. No puedo encontrar la manera de controlar este comportamiento - Realmente agradecería algunos consejos sobre cómo lograr esto en estricto código o utilizando XML. Otro caso es cómo utilizar XML para definir dicha disposición y la aleatoriedad del juego de texto en los botones.

¿Fue útil?

Solución

Si se agrega

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

a su bucle interno para (), los botones siempre mostrará su posición en la lista, ya sea activar o desactivar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top