package ex.Num;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
public class Num extends Activity
{
 private final int buttons[] = { 
   R.id.bt1, R.id.bt2, R.id.bt3, R.id.bt4, R.id.bt5, R.id.bt6, R.id.bt7, R.id.bt8, 
   R.id.bt9, R.id.bt10, R.id.bt11, R.id.bt12, R.id.bt13, R.id.bt14, R.id.bt15, R.id.bt16
 };
 private static final Button btn[] = new Button[16];
 private final int var[] =  {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8};
 private final int idx[] =  new int[16]; // 인덱스 영역
 
 int tmp; 
 int sw ;
 String temp;
 private Button bttmp;
 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  init();     
 }
 public void init() {
  sw = 0;
  Random r = new Random();
  for(int i=0; i<16; i++) {
   idx[i] = r.nextInt(15); // 인덱스영역은 난수로 초기화 
  }
  for(int i=0; i<16; i++) {
   tmp = var[i];
   var[i] = var[idx[i]];
   var[idx[i]] = tmp;
  }
  for(int i=0; i<16; i++) {
   btn[i] = (Button)findViewById(buttons[i]);
   btn[i].setOnClickListener(btnClick);
   btn[i].setText((var[i])+"");
   btn[i].setBackgroundColor(0xffffdbc1);
   btn[i].setTextSize(40);
   btn[i].setTextColor(0xffffdbc1);
  }
 }
 public OnClickListener btnClick = new OnClickListener() {
  public void onClick(View v) {
   v.setBackgroundColor(0xffffaaff);
   if (sw == 0){
    temp = ((TextView) v).getText().toString();
    bttmp = (Button) v;
    sw = 1;
    }
   else if (sw == 1){
    if(!(temp.equals(((TextView) v).getText().toString()))){
     try { Thread.sleep(1000); } catch (InterruptedException e) {}
     bttmp.setBackgroundColor(0xffffdbc1);
     ((Button) v).setBackgroundColor(0xffffdbc1);
    }
    sw = 0;
   }
  }
 };
}  

 public OnClickListener btnClick = new OnClickListener() {
  public void onClick(View v) {
   v.setBackgroundColor(0xffffaaff);
   if (sw == 0){
    temp = ((TextView) v).getText().toString();
    bttmp = (Button) v;
    sw = 1;
    }
   else if (sw == 1){
    if(!(temp.equals(((TextView) v).getText().toString()))){
    
 try { Thread.sleep(1000); } catch (InterruptedException e) {}
     bttmp.setBackgroundColor(0xffffdbc1);
     ((Button) v).setBackgroundColor(0xffffdbc1);
    }
    sw = 0;
   }
  }
 };

 이 부분에서 말이죠 순서대로 실행이 되야 되는데
속성값은 변하고 그것이 반영되는 시기의 문제로
1초 후에 색상이 변하네요..
v.setBackgroundColor(0xffffaaff);
이 함수가 UI에 적용되는 시기가
onClick함수를 빠져나가는 시점이라고 하네요
이 문제를 해결할수 있는 방법이 없을까요 ㅠㅠ