2016-10-28 3 views
0

n00b '의 문제는 유감 스럽지만 마음에 들지 않습니다. 간단한 코드입니다.토글 버튼 상태가 변경되지 않음

토글 버튼 상태가 On으로 변경되면 몇 초 후에 상태를 해제로 전환하십시오. 두 버튼 모두 textOn = "On"이고 textOff = "Off"입니다. 다음 코드는 tbuttonle1과 tbotoggle2에 대해 OnClickListeners에 배치됩니다.

tbToggle1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (tbToggle1.isChecked() & tbToggle2.isChecked()) { 
       try { 
        Thread.sleep(3000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
       tbToggle1.setChecked(false); 
       tbToggle2.setChecked(false); 
      } 
    }); 

tbToggle1 가압 (이 "ON"으로 변경) 다음 tbToggle2- 두 버튼 3 초 후에 "오프"의 상태를 변경 한 후 가압. "Off"로 변경하기 전에 3 초 동안 "On"으로 변경하려면 tbToggle2가 필요합니다.

UI 스레드 문제입니까? 어떤 도움을 주셔서 감사합니다.

답변

0

UI 스레드에서 Thread.sleep을 호출하는 것은 결코 좋은 생각이 아닙니다.

이 시도 :

tbToggle1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     if (tbToggle1.isChecked() & tbToggle2.isChecked()) { 
      tbTogggle1.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        tbToggle1.setChecked(false); 
        tbToggle2.setChecked(false); 
       } 
      }, 3000); 
     } 
}); 
관련 문제