看板 AndroidDev 關於我們 聯絡資訊
問題: 有一按鈕當按鈕按下時,播放音檔且按鈕的狀態要變成不可觸發。當音檔 播放完畢時,將按鈕的狀態變成可觸發。但是,下述程式碼會在音檔播放完成 後才按鈕的狀態變成不可觸發,請問這是為什麼呢? 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)
jacktoad:我看不到你哪時候要執行btn.setEnabled(true); 08/07 17:48
※ 編輯: sweet00914 來自: 220.130.55.241 (08/07 17:57)
givemepass:Thread+Handler 就解決了! 08/07 20:26
sweet00914:由衷感謝。0.0 08/07 22:24
※ 編輯: sweet00914 來自: 114.38.42.45 (08/07 22:27)