2011-09-15 6 views
0

그래서 다른 게시물이 비슷하지만 찾고있는 것에 답을 찾지 못했습니다.준비가 끝날 때까지 버튼 사용 금지

기본적으로 onCreate는 콘텐츠 (텍스트 뷰 및 이미지)에로드되며 미디어 플레이어를 준비하기 위해 다른 스레드를 열어 버튼을 누르면 특정 노래를 재생합니다. 이 액티비티가 열려 있고 버튼을 빨리 누르면 아무 것도 재생되지 않습니다 (준비 할 기회가 없기 때문에 가정합니다). 활동을 열어 잠시 기다려도 잘 작동합니다. onCreate에서로드되는 내용을 실행하는 것이 가장 좋지 않다는 것을 알지만, 다른 스레드에서로드하려고 시도했지만 비참하게 실패했습니다. 내가 정말로하고 싶은 것은 나와 함께 모두 괜찮습니다.

버튼을 사용하지 못하게하거나 약 3-5 초 동안로드되고 있음을 알리는 방법이 필요합니다. 따라서 버튼을 페이드 아웃하고 3-5 초 동안 사용할 수 없게 만든 다음 활성 상태가되거나 약 3-5 초 동안 활동을 커버하는 투명성이있는 로딩 화면이됩니다. 만약 당신이 다른 스레드를 사용하여 언급하면 ​​많은 것을 요구하지 않거나 나에게 튜토리얼 (googles notes가 아닌)과 같은 것을 보여 주면 그것을 증명할 수 있겠는가? 나는 스레드를 아직 잘 이해하지 못했지만 (꽤 새로운 것들) AsyncThread는 꽤 혼란 스럽다.

코드가 필요하면 게시하고자하는 것을 알려주십시오. 고마워. 그리고 나는 어떤 도움을 주셔서 감사합니다.

답변

5

MediaPlayer에서 setOnPreparedListener을 설정할 수 있습니다.이 수신기에서 버튼을 활성화하고 노래를 재생할 수 있도록 저장하십시오. Docs

+0

흠, 재미있는 방법으로 들립니다. 내가 한번 볼게. 감사합니다 – steven

+0

감사합니다. 그것은 완벽하게 작동했습니다. 버튼을 설정하기 전에 버튼을 비활성화로 설정하고 OnPrepared에서 버튼을 활성화로 설정하십시오. 곧 그것이 준비된대로 버튼이 작동했습니다 :) 고마워요. 정확히 내가 찾고있는 것이 었습니다. – steven

+0

기쁘다, 당신은 정말 빨리 개발했습니다. – Michele

0

버튼 동작을 제어하는 ​​XML 선택기 파일을 만들 것입니다. 뭔가 같은 :

<?xml version="1.0" encoding="utf-8"?> 

<item android:state_enabled="true" android:drawable="@drawable/lbl_black_matte" /> 

<item android:state_enabled="false" android:drawable="@android:color/transparent"> 
</item> 

그런 다음 활동 :

private Button mActivate; 

mActivate = (버튼) findViewById를 (R.id.activate); mActivate.setOnClickListener (this);

어딘가에 그런

, 당신은 마법이 준비가되어 있는지 확인하고, 만약 그렇다면 버튼을 활성화합니다 : 마지막으로

if (mEnabled) { 

      mActivate.setEnabled(true); 
     } 

, 당신은 XML 문서의 버튼 동작 선택을 참조해야합니다 버튼이 생성됩니다.

android:layout_width="match_parent"> 
     <Button android:id="@+id/activate" 
      android:background="@drawable/b_behaviour" android:layout_height="wrap_content" 
      android:layout_margin="8dip" android:layout_width="match_parent" 
      android:text="@string/setup_label_enable" android:textColor="@android:color/white" 
      android:textStyle="bold"> 
     </Button> 

명확한 지 또는 클릭 수신기를 만드는 방법에 대해 설명해 주시면 알려주세요.

행운을 빈다.

관련 문제