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

Android CheckBox 監聽器錯誤:正確實作 OnCheckedChangeListener

     編輯:程式設計綜合問答

為 CheckBox 設定監聽器時,若匿名類別參數型別寫錯,編譯器會誤判為 RadioGroup.OnCheckedChangeListener,導致無法編譯或執行錯誤。

錯誤寫法

satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) { // 錯誤參數
        // ...
    }
});

正確寫法

CheckBox 繼承自 CompoundButton,應使用 CompoundButton.OnCheckedChangeListener:

satView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // 勾選時的邏輯
        } else {
            // 取消勾選時的邏輯
        }
    }
});

補充說明

  • buttonView 即為觸發事件的 CheckBox 本身。
  • isChecked 直接反映當前勾選狀態,無需額外呼叫 isChecked()。
  • 同樣適用於 ToggleButton、Switch 等 CompoundButton 子類。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved