[問題] 播放音檔之間如何控制Button Enable?

看板AndroidDev作者 (別理我)時間12年前 (2012/08/07 17:30), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串1/1
問題: 有一按鈕當按鈕按下時,播放音檔且按鈕的狀態要變成不可觸發。當音檔 播放完畢時,將按鈕的狀態變成可觸發。但是,下述程式碼會在音檔播放完成 後才按鈕的狀態變成不可觸發,請問這是為什麼呢? Code: btn.setEnabled(false); playmp3(am, 檔名); while (mp.isPlaying() == true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } break; 補充: 上述程式碼是在 btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { //Code } }); --------------------------------------------------------- 嘗試: btn.setEnabled(false); playmp3(am, 檔名); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } 發現按鈕的狀態在設定的3秒後才改變,並非按下按鈕後就立即改變。 ================================================================ Sol: new Thread(new Runnable() { public void run() { while (mPlayer.isPlaying()==true) { try { Message msg = new Message(); msg.what=0; handler.sendMessage(msg); Thread.sleep(500); } catch (Exception e) { e.printStackTrace(); } } Message msg = new Message(); msg.what=1; handler.sendMessage(msg); } }).start(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.55.241 ※ 編輯: sweet00914 來自: 220.130.55.241 (08/07 17:46)

08/07 17:48, , 1F
我看不到你哪時候要執行btn.setEnabled(true);
08/07 17:48, 1F
※ 編輯: sweet00914 來自: 220.130.55.241 (08/07 17:57)

08/07 20:26, , 2F
Thread+Handler 就解決了!
08/07 20:26, 2F

08/07 22:24, , 3F
由衷感謝。0.0
08/07 22:24, 3F
※ 編輯: sweet00914 來自: 114.38.42.45 (08/07 22:27)
文章代碼(AID): #1G8E0bIb (AndroidDev)