首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android MediaPlayer 點擊播放報錯:Activity 需實現 OnClickListener 並正確綁定

     編輯:程式設計綜合問答

Button.setOnClickListener((OnClickListener) this) 崩潰,因 Click 類未實現 OnClickListener 接口,強轉失敗。需 implements OnClickListener 並實現 onClick 方法。

錯誤代碼

public class Click extends Activity {  // ❌ 未實現接口
    // ...
    button1.setOnClickListener((OnClickListener) this); // ClassCastException
}

修正代碼

public class Click extends Activity implements View.OnClickListener { // ✅ 實現接口
    MediaPlayer mp1;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_click);
        mp1 = MediaPlayer.create(this, R.raw.sound1);
        Button button1 = findViewById(R.id.button1);
        button1.setOnClickListener(this); // ✅ 直接傳 this
    }
    
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.button1) {
            mp1.start();
        }
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mp1 != null) {
            mp1.release(); // 釋放資源
            mp1 = null;
        }
    }
}

關鍵點

  • implements View.OnClickListener 而非 OnClickListener(需導包或全限定名)。
  • setOnClickListener(this) 無需強轉。
  • MediaPlayer 用完必須 release(),建議在 onDestroy 中釋放。

實現接口並正確綁定,按鈕播放聲音不再崩潰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved