0

私は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の唯一のビューは線形レイアウトです。今のところ私は配列のサイズをハードコードしました。

答えて

0

EditTextビューからユーザー入力を受け取ることはできませんか?次に、その入力で配列を初期化することができます。

+0

これは私がやりたいことです。そうです。私の主な問題は、ボタン/トグルボタンの配列を初期化することです。それは単に私にとってはうまくいかない。多分私は間違ったことをしているので、私はそれに従うことを望んでいました。 – thethomasramsey

+0

あなたのAndroidコードを投稿すると、おそらくエラーが表示されます。 – C0deAttack

+0

よろしいですか?私は上記の元の投稿にonCreate()メソッドを追加しました。 – thethomasramsey

関連する問題