Domanda

Ho fare un gioco di carte memo in Android per il mio progetto. Per quanto riguarda ora sono nella fase in cui cerco di capire la forma di base della mia app.

ho letto alcuni tutorial, ma posso; (. Cioè in 'per il' loop) t capire come modificare un sacco di pulsanti creati dinamicamente, da xml, o anche dal codice. Per rendere la mia domanda chiaro ecco il codice che ho fatto

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

Cosa accade quando eseguire l'applicazione è che ho 30 ToggleButtons sullo schermo, ciascuna delle quali ha una forma numero da 0 a 14 (15 paia). Questo è quello che ho voluto avere, ma quando si preme uno di essi pulsanti oltre a mostrare i cambiamenti testo del pulsante brindisi formano quello che voglio che sia su ON e poi, dopo un'altra macchina da stampa su OFF. Io non riesco a capire come controllare questo comportamento - Vorrei davvero apprezzare alcuni suggerimenti su come raggiungere questo obiettivo rigorosamente in codice o utilizzando XML. Un altro caso è come utilizzare XML per definire come il layout e la casualità del set testo sui pulsanti.

È stato utile?

Soluzione

Se si aggiunge

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

per il vostro anello interno per (), i pulsanti visualizzerà sempre la loro posizione nella lista, sia attivata o disattivata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top