我有以下代码
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;干净,但没有解决它。请帮忙,谢谢!
答案 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
方法本身的第一个语句。