質問

プロジェクトのためにAndroidでメモカードゲームを行う必要があります。今のところ、私はアプリの基本的な形状を把握しようとしている段階にいます。

いくつかのチュートリアルを読みましたが、動的に作成された多くのボタン(つまり、 'for' loop)、XML、さらにはコードからさらに変更する方法を理解できます。私の質問を明確にするために、ここに私が作ったコードがあります

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

アプリを実行すると何が起こりますか、画面に30のトグルブタンがあるということです。それぞれには0〜14(15ペア)の数字があります。それは私が望んでいたものですが、トーストボタンのテキストの変更を表示することに加えて、それらのボタンのいずれかを押すと、私が望むものを形成し、次に別のプレスをオフにします。この動作を制御する方法を理解することはできません - これを厳密にコードまたはXMLを使用する方法に関するいくつかのヒントを本当に感謝しています。別のケースは、XMLを使用して、ボタンに設定されたテキストのこのようなレイアウトとランダム性を定義する方法です。

役に立ちましたか?

解決

追加する場合

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

()ループの内側に、ボタンは常にリストに位置を表示します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top