0

次のコードがあります

        image1.setOnClickListener(new View.OnClickListener() {

        int randInt = new Random().nextDouble() < 0.5 ? 1 : 2;

        if (randInt.equals(1)) {
            public void onClick(View view) {
                if (isFirstImage) {       
                    applyRotation(0, 90);
                    applyRotation(0, 90);
                    isFirstImage = !isFirstImage;

                } else {    
                    applyRotation(0, -90);
                    applyRotation(0, -90);
                    isFirstImage = !isFirstImage;
                }
            }
        } else if (randInt.equals(2)) {
            public void onClick(View view) {
                if (isFirstImage) {       
                    applyRotation(0, 90);
                    applyRotation(0, 90);
                    applyRotation(0, 90);

                    isFirstImage = !isFirstImage;

                } else {    
                    applyRotation(0, -90);
                    applyRotation(0, -90);
                    applyRotation(0, -90);
                    isFirstImage = !isFirstImage;
                }
            }
        }

    }); 

明らかに「;」があるのに、整数を宣言する行に「構文エラー、「;」を挿入してステートメントを完成させてください」があります。そこの。「トークン "(",:expected" および "トークン ") の構文エラー",;expected にいくつかの "構文エラー" があります。ここで、"public void onClick(View view) {" があります。"Syntax error, insert "}" to complete Statement" ですが、どこを見てもステートメントをすべて閉じてしまったようです。

Eclipse が誤ったエラーを出していると思います。Project > Clean を試しましたが、解決しませんでした。助けてください、ありがとう!

4

1 に答える 1

4

「;」が欠けていると思います エラーは偽です。あなたの本当の問題は、 onClick リスナーを宣言しようとしている方法です。ifブロックには、そのようなメソッド宣言を含めることはできません。次のことを試してください。

image1.setOnClickListener(new View.OnClickListener() {

    int randInt = new Random().nextDouble() < 0.5 ? 1 : 2;

    @Override
    public void onClick(View view) {
        if (randInt == 1) {
            if (isFirstImage) {       
                applyRotation(0, 90);
                applyRotation(0, 90);
            } else {    
                applyRotation(0, -90);
                applyRotation(0, -90);
            }
        } else if (randInt == 2) {
            if (isFirstImage) {       
                applyRotation(0, 90);
                applyRotation(0, 90);
                applyRotation(0, 90);
            } else {    
                applyRotation(0, -90);
                applyRotation(0, -90);
                applyRotation(0, -90);
            }
        }
        isFirstImage = !isFirstImage;
    }
});

これは、が に取り付けられrandIntた時点で修正されます。がクリックされるたびにランダムな回転が必要な場合は、 の宣言をメソッド自体の最初のステートメントに移動します。OnClickListenerimage1image1randIntonClick

于 2013-04-26T19:54:51.883 に答える