一次突出显示一个按钮

时间:2012-10-01 01:11:07

标签: android

我正在制作一款以旧西蒙游戏为蓝本的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);
  }
}

2 个答案:

答案 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);
   }

}