2012-01-09 1 views
0

setPressed를 true로 설정하고 postDelay 설정을 통해 setPressed를 거짓으로 설정하여 나중에 몇 번 틱하면 키 입력을 시뮬레이션하려고합니다. 내 문제는 한 번 적용하면 완벽하게 작동하지만 여러 요소가있는 목록을 반복 할 때 지연이 서로 반복한다고 생각하면됩니다. 반복은 너무 빠릅니다. 솔루션은 postDelayed보다 더 긴 시간 동안 루프를 반복하는 것을 지연시키는 것이라고 생각합니다.하지만이 방법으로도 많은 성공을 거두지는 못합니다.Delay For Loop 특정 시간 동안 루프 - Android

public void myOnClickListener(View view) { 

    switch (view.getId()) { 

    case R.id.test: 
     //adds two random digits to list 
     addRandomDigits(2); 

     int size = list.size(); 
     System.out.println("Size: " + size); 
      tmpButton = map.get(list.get(list.size()-1)); 
      tmpButton.setPressed(true); 
      tmpButton.postDelayed(new Runnable() { 
       public void run() { 
        tmpButton.setPressed(false); 
       } 
      }, 200); 

     Log.e("**droid", "Droid sequence: " + getArrayListAsString(list)); 
     break; 

이 솔루션이 가장 효율적이거나 논리적 인 것 같지 않은 경우 어떤 제안이든지 널리 공개됩니다. 미리 감사드립니다.

답변

0

루프 대신, TimerTask 클래스를 사용하여 특정 시간에 실행하도록 제안하고 싶습니다.

private class myLoop extends TimerTask 
{ 
     public void run() 
     { 
      // Place your code here. 

      addRandomDigits(2); 

      int size = list.size(); 
      System.out.println("Size: " + size); 
      tmpButton = map.get(list.get(list.size()-1)); 
      tmpButton.setPressed(true); 
      tmpButton.setPressed(false); 

      Log.e("**droid", "Droid sequence: " + getArrayListAsString(list)); 
      break; 
     } 
} 

tmpButton을 정적으로 설정해야합니다.

+0

적시에 답변 해 주셔서 감사합니다. 루프없이 목록을 반복하려면 어떻게해야합니까? 예를 들어, 목록에있는 {1,2,3,4,5} 경우 setPressed (true) 다음 setPressed (false) 단추 # 1, 다음 단추 # 2, 키 입력을 시뮬레이션 할 싶습니다. 감사. – calcrisk33

+0

안녕하세요, 실행 방법에 전체 루프 코드를 추가하십시오. – Android

+0

안녕 Arjun, TimerTask의 일정 (...)을 어딘가에 사용하고 있습니다. 이 문제를 함께 해결하는 데 문제가 있습니다. 나는 4 일 동안이 해결책에 있었고 거의 김미를 찾고 있었다. 미리 감사드립니다. – calcrisk33