为什么我会收到这些语法错误?

时间:2013-04-26 19:48:59

标签: android eclipse syntax-error

我有以下代码

        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;
                }
            }
        }

    }); 

我在声明我的整数的行上有一个“语法错误,插入”;“完成语句”,当我明显有一个“;”时那里。 我有一些“令牌上的语法错误”(“,:预期”和“令牌上的语法错误”)“,;预期”我有“public void onClick(View view){” 我有一个“语法错误,插入”}“以完成声明”,但我到处寻找,似乎我已经关闭了所有的陈述。

我认为Eclipse给了我错误的错误,我尝试了Project&gt;干净,但没有解决它。请帮忙,谢谢!

1 个答案:

答案 0 :(得分: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附加到OnClickListener时修复image1。如果您希望每次单击image1时进行随机轮播,请将randInt的声明移至onClick方法本身的第一个语句。