我正在制作一款以旧西蒙游戏为蓝本的Android游戏。布局略有不同,因为它使用3x3布局的按钮。我试图让按钮在循环内一次点亮一个随机选择按钮的按钮。我遇到的麻烦是所有按钮一次亮起,只有最后一个(或第一个,不确定)变回原始颜色。我已经非常彻底地尝试找到适合我情况的答案,但在这里或其他地方没有运气。按钮ID位于按钮[]中。按钮[0]是按钮1,按钮[2] ......下面是我的尝试。
public void play()
{
for(int x = 0; x <= numButtons; ++x)
{
spot = randomGenerator.nextInt(9);
playMe[x] = spot;
//butts[spot].setBackgroundColor(Color.parseColor("#540115"));
handler.postDelayed(new Runna(spot), (x+1)*1000);
}
}
class Runna implements Runnable
{
public Runna(int j2)
{
butts[j2].setBackgroundColor(Color.parseColor("#540115"));
}
public void run()
{
butts[spot].setBackgroundColor(Color.LTGRAY);
}
}
答案 0 :(得分:0)
您是否每次尝试使按钮无效?
public Runna(int j2)
{
butts[j2].setBackgroundColor(Color.parseColor("#540115"));
butts[j2].invalidate();
}
答案 1 :(得分:0)
我认为这与现货的价值有关。它是全局的功能,你每次都改变它。它运行,但最后仍然只有一个点,每个runnable都试图改变相同的位置。
也许在runnable中保存点?
class Runna implements Runnable
{
int s;
public Runna(int j2)
{
s = j2;
butts[s].setBackgroundColor(Color.parseColor("#540115"));
}
public void run()
{
butts[s].setBackgroundColor(Color.LTGRAY);
}
}