2011-09-15 2 views
0

他のポストも同様ですが、私が探しているものにはあまり答えることはできません。準備が整うまでボタンを使用しないようにします。

基本的に、onCreateはコンテンツ(textviewsとimage)を読み込んでおり、メディアプレーヤーを準備するための別のスレッドを開き、ボタンを押すと特定の曲を再生します。このアクティビティを開いてボタンをすばやく押すと、何も再生されません(準備はできていないので、私はこれを想定しています)。私がアクティビティを開いて数分を与えると、うまく動作します。私はonCreateでロードされているコンテンツを実行するのが最善ではないことを認識していますが、他のスレッドでロードするようにしようとしましたが、悲惨に失敗しました。私が本当にやりたいことは、これだけです。

ボタンを使用しないようにする方法や、約3〜5秒間ロードすることを知らせる方法が必要です。そのため、ボタンをフェードアウトして3〜5秒間使用できないようにしてから、アクティブになるか、約3-5秒間アクティビティをカバーする透明なものであるローディング画面を表示します。あなたが他のスレッドを使って言えば、チュートリアル(グーグルノート以外)のようなものをたくさん尋ねたり、私に何かを見せていないかどうか試してみてください。私はスレッドをまだよく理解していません(かなり新しい)、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> 

明らかかどうか、またはクリックリスナーの作成方法が必要かどうかを教えてください。

幸運を祈る!

関連する問題