私はJavaコース用のLightsOutゲームを作っています。アンドロイドを学ぶ方法として、アプリケーションとして再構築しようとしています。私はアンドロイドアプリケーションを最適化しようとしています
メインアクティビティは、トグルボタンのグリッドで構成されています。ボタンが「チェック」されると、ボタンとそれに隣接するボタンがトグルされます。すべてのボタンがトグルオフされると、ゲームに勝ちます。私はそれをこの点まで動かせましたが、コードは恐ろしいものです。
トグルボタンの2次元配列を作成してコードを整理したいと思います。私はそれをどのように持っているのですか、私は単に各ボタンを個別に宣言します。これは、冗長コードの大きなブロックを作成し、容易に縮尺を変えることはできません。
もともと、Javaで私はこれをしなかった:XCORは前gamefieldの構築にユーザー入力に基づいた
buttons = new LightButton[xCor][xCor];
for (int x = 0; x < xCor; x++) {
for (int y = 0; y < xCor; y++) {
buttons[x][y] = new LightButton(this, x, y);
panel.add(buttons[x][y]);
}
}
。これにより、配列をトラバースすることで、ゲームの状態を簡単に初期化して確認することができました。私は単にアンドロイドでこれを行う方法を見つけていない。
したがって、ユーザー入力に基づいてトグルボタンの配列/リストを作成する方法はありますか?ここ
が活性である:
パブリッククラスLightsOutActivityアクティビティはOnClickListenerを実装延び{
protected ToggleButton[][] buttonArray;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
buttonArray = new ToggleButton[4][4];
for (int x = 0; x < 4; x++) {
for (int y = 0; y < 4; y++) {
buttonArray[x][y] = new ToggleButton(this);
LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f);
buttonArray[x][y].setLayoutParams(params);
((ViewGroup) findViewById(R.layout.main)).addView(buttonArray[x][y]);
}
}
setContentView(findViewById(R.layout.main));
}
直ちに力近くになります。 R.layout.mainの唯一のビューは線形レイアウトです。今のところ私は配列のサイズをハードコードしました。
これは私がやりたいことです。そうです。私の主な問題は、ボタン/トグルボタンの配列を初期化することです。それは単に私にとってはうまくいかない。多分私は間違ったことをしているので、私はそれに従うことを望んでいました。 – thethomasramsey
あなたのAndroidコードを投稿すると、おそらくエラーが表示されます。 – C0deAttack
よろしいですか?私は上記の元の投稿にonCreate()メソッドを追加しました。 – thethomasramsey