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

    }); 

我在声明整数的那一行出现“语法错误,插入“;”来完成语句”,而我显然确实有一个“;” 那里。我有一些“令牌上的语法错误”(“,:预期”和“令牌上的语法错误”)“,;预期”,其中我有“public void onClick(查看视图){”我有一个“语法错误,插入“}”完成声明”但我到处看了看,似乎我已经关闭了所有的声明。

我认为 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;
    }
});

这将randIntOnClickListener附加到时修复image1。如果您希望每次image1单击时随机旋转,请将声明移动到方法本身randInt的第一个语句。onClick

于 2013-04-26T19:54:51.883 回答