我在Android中遇到了问题。我想有条件地设置drawable
并同时更改boolean
。
如果点击button
,则会获得一个框架,boolean
设置为true
。如果再次单击,框架将消失,boolean
将设置为false
。
只有if的第一部分正常工作。因此,如果我单击button
,则会设置框架,但如果再次单击,则不会消失。正确定义了两个drawables
。
这会在onClickListeners
内将buttons
设置为array
。
for (int j = 0; j < dice.length; j++) {
final Button temp = dice[j];
final boolean locked = isLocked[j];
final int finalJ = j;
dice[j].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setLock(locked, finalJ, temp);
}
});
}
}
这是被叫方法isLocked
是array
,其中包含属于booleans
的{{1}}。我知道这不是最聪明/最好的解决方案,但由于其他代码需要它。
buttons
有人可以帮忙吗?
答案 0 :(得分:2)
final boolean locked = isLocked[j];
这里的值被冻结,并且在OnClickListener.onClick(View v)
内的以下调用中永远不会更改。
虽然更改了数组项目(仅限第1次 - 您观察到的内容)。
要做到正确,请摆脱locked
param:
public void setLock(int finalJ, Button button) {
boolean locked = isLocked[finalJ];
....
isLocked[finalJ] = !isLocked[finalJ];
}