2011-12-03 5 views

답변

1

.... 여기

당신이 그것을 할 수있는 방법은 다음과 같습니다 일부 HTC 휴대폰에서

button01.setFocusableInTouchMode(true); 
    button01.requestFocus(); 

이 녹색으로 버튼을 강조 일부 LG 전화는 노란색입니다. 포커스 색상은 기본적으로 장치 속성입니다.

이렇게하면 논리를 적용하여 적절한 시간 후에 다른 객체에 초점을 맞출 수 있으므로 button01은 초점을 잃고 다시 정상적인 자기가됩니다.

someOtherView.setFocusableInTouchMode(true) 
    someOtherView.RequestFocus(); 
+0

답장을 보내 주셔서 감사합니다. 내 문제는 지금 : "적절한 시간 후에 다른 개체에 포커스 설정"! 일종의 노래방 앱을 만들고 있습니다. 각 단어가 버튼이고 나는 그들이 연주하면서 동기화에서 그들을 강조하고 싶은, 그래서 루프 사용에 대한 을 (1 = 난을 int로, 내가 fl.getChildCount를 (<); ++ I) {\t \t \t \t \t \t \t \t \t \t \t 버튼 btn = (버튼) fl.getChildAt (i); \t \t \t \t \t \t \t \t \t \t btn.setFocusableInTouchMode (TRUE); \t \t \t \t \t \t \t \t \t \t \t btn.requestFocus(); \t \t \t \t \t \t \t \t \t \t \t mTts.speak ((문자열) btn.getText() TextToSpeech.QUEUE_ADD, myHashAlarm); } ==> 마지막 버튼 만 강조 표시됩니다. 어떤 아이디어 ??? – user1068400

+0

문제가 생겼습니다 ... for 루프는 실제로 모든 버튼에서 포커스를 설정하지만 거의 즉시 포커스를 제거합니다 ... 루프가 끝나면 마지막 버튼 포커스가 그대로 유지됩니다. 안드로이드의 CountDownTimer 또는 AlarmManager (알람 관리자에 대해서는 확실하지 않음) 다음 자식 버튼으로 포커스를 이동하기 전에 특정 지연을주기 위해 .... 다른 접근법은 핸들러를 사용하여 ..... 당신이 보낼 수 있습니다 message.sendEmptyMessage (3) textToSpeech가 끝난 후 다른 버튼이나 뷰에 포커스를 설정할 수 있습니다 ... – drulabs

+0

sendEmptyMessage (3)은 예제 일뿐입니다. (msg.what == 3) – drulabs

1

해결책을 찾았습니다. 누군가가 일종의 노래방을 만드는 데 관심이 있다면 여기 내 코드는 다음과 같습니다.

public void playKaraoke(final FlowLayout fl) { 
     //KARAOKE 
     mTts.setLanguage(Locale.FRENCH); 
      // Do something long 
      Runnable runnable = new Runnable() { 
       @Override 
       public void run() { 
        for (int i = 1;i<fl.getChildCount();++i) { 
         final Button btn = (Button) fl.getChildAt(i); 
         btn.setFocusableInTouchMode(true); 
         try { 
          Thread.sleep(800); 
         } catch (InterruptedException e) { 
          e.printStackTrace(); 
         } 
         handler.post(new Runnable() { 
          @Override 
          public void run() { 
           //progress.setProgress(value); 
           btn.requestFocus(); 
           mTts.speak((String) btn.getText(), 
              TextToSpeech.QUEUE_FLUSH, // Drop all pending entries in the playback queue. 
              null); 
          } 
         }); 
        } 
       } 
      }; 
      new Thread(runnable).start(); 

    } 
+0

멋진 직장. 나는 이것을 염두에 둘 것입니다. – drulabs

관련 문제