0

私は短い gridSize に onclick の値を与えるコードを持っています(それが私が望んでいることです。間違いがあれば修正してください)。しかし、今のところまだ何もしていません...

短い値を与えるコード:

public static short getGridSize(PuzzleActivity puzzleActivity, ImageButton view)  {
        if ( mIbtn3x3 == view) {
            String puzzle3 = "3";
            Short gridSize = Short.parseShort(puzzle3);
        } else if (mIbtn4x4 == view ) {
            String puzzle4 = "4";
            Short gridSize = Short.parseShort(puzzle4);
        } else if (mIbtn5x5 == view ) {
            String puzzle5 = "5";
            Short gridSize = Short.parseShort(puzzle5);
        }
        return Short.parseShort(PuzzleActivity.gridSize);
    } 

値を受け取るコード (パズル アクティビティ):

 createGameBoard(SizeSelection.getGridSize(this));
            break;

if ブロック コード: gridSize で次のエラーが発生します:「gridSize を解決できないか、フィールドではありません」。

PuzzleActivity コード: .getGridSize で次のエラーが発生します: 「SizeSelection 型のメソッド getGridSize(PuzzleActivity, ImageButton) は、引数 (PuzzleActivity) には適用できません」。

明らかに、私はプロのコーダーではありません。これを修正するのを手伝ってください。前もって感謝します〜olijf

4

2 に答える 2

0

ここで起こっていることがいくつかあります。最初に取り上げるのは、コンパイラエラーです。

getGridSizeコードから間違った呼び出しをしているようですImageButton。アクティビティと一緒に渡す必要があります。

ImageButtonが呼び出されたとするとimageButton、コードは次のようになります(viewスイッチをオンにできるようにバインドします)。

createGameBoard(SizeSelection.getGridSize(this, imageButton));

内部getGridSizeでは、gridSize変数をリセットするのではなく、代わりに各if/thenブロック内に新しい変数を作成します。あなたはこのようなことをする必要があります:

Short gridSize = -1;
if(mIbtn3x3 == view) {
    String puzzle3 = "3";
    gridSize = Short.parseShort(puzzle3);
}
else if(mIbtn4x4 == view) {
    String puzzle4 = "4";
    gridSize = Short.parseShort(puzzle4);
}
...
return Short.parseShort(gridSize);

しかし、実際には、に不必要な呼び出しをたくさん行っていますparseShort。私はもっ​​とこのようなことをします:

public static short getGridSize(...) {
     switch(view) {
          case mIbtn3x3:
               return 3;
          case mIbtn4x4:
               return 4;
          case mIbtn5x5:
               return 5;
     }
}
于 2012-11-06T16:50:47.060 に答える
0

最初 - 可変範囲。Java 変数は括弧内にあります - {} この行で:

return Short.parseShort(PuzzleActivity.gridSize);

クラスで静的フィールド「gridSize」を宣言していません。そのようなことをしてください:

static short getGridSize(){
private short gridSize;
if{...}
else if{...}
return gridSize;
}

2 番目のエラーは、間違った引数 (型) で getGird() を呼び出し、ImageButton の代わりに PuzzleActivity を使用していることを示しています

于 2012-11-06T17:57:11.897 に答える