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

Android Activity 繼承共用類別:Button 失效解決之道 — 呼叫 super.onClick()

     編輯:程式設計綜合問答

在 Activity1 繼承共用基底類別後,繼承而來的 Button 點擊無反應;但 Activity2 同樣繼承卻正常。經排查,發現子類別覆寫 onClick(View v) 時未呼叫父類別實作。

解決方法

在子類別的 onClick() 中加入 super.onClick(v);:

@Override
public void onClick(View v) {
    super.onClick(v); // 關鍵:讓父類別處理共用按鈕邏輯
    // 子類別自有邏輯...
}

原理

父類別可能在 onClick() 中處理共用按鈕(如返回鍵、選單鍵)的邏輯。子類別覆寫時若不呼叫 super,父類別邏輯便被完全取代,導致按鈕「失效」。

最佳實踐

  • 凡覆寫父類別事件處理方法,預設先呼叫 super.xxx(),除非確定要完全取代。
  • 若父類別方法為 final 或未提供擴充點,則需重新設計架構(如改用介面回調)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved