Wie ToggleButton Verhalten mit oder ohne xml in Android modifizieren
-
27-09-2019 - |
Frage
Ich habe ein Memo Kartenspiel in Android für mein Projekt zu tun. Was jetzt bin ich in der Phase, wo ich aus der Grundform meines App Figur versuchen.
Ich habe einige Tutorials zu lesen, aber ich kann; (. Dh in ‚für‘ Schleife) t herauszufinden, wie viele dynamisch erstellten Schaltflächen zu ändern, von XML oder sogar aus dem Code. Auf meine Frage deutlich machen hier ist der Code, den ich gemacht
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
Was passiert, wenn ich die app ausgeführt ist, die ich habe 30 ToggleButtons auf dem Bildschirm, wobei jeder von ihnen weist eine Anzahl Form 0 bis 14 (15 Paare). Das ist, was ich haben wollte, aber wenn ich alle von ihnen drücken Tasten neben zeigt die Textänderungen Toast Taste bilden, was ich auf ON sein wollen und dann nach dem anderen drücken auf OFF. Ich kann nicht herausfinden, wie dieses Verhalten zu steuern - ich würde wirklich einige Tipps schätzen, wie dies in Code streng zu erreichen oder XML. Ein anderer Fall ist, wie XML zu verwenden, wie das Layout und Zufälligkeit des Textsatzes zu definieren, die auf Tasten.
Lösung
Wenn Sie fügen
b.setTextOff(Integer.toString(listaKart.get(licznik)));
b.setTextOn(Integer.toString(listaKart.get(licznik)));
auf Ihre innere for () Schleife werden die Tasten immer ihre Position in der Liste angezeigt werden, ob diese Option aktiviert ist oder aus.