核心區別
| 監聽器 | 觸發源 | 典型場景 |
OnClickListener | View 點擊(手指/鼠標) | 按鈕、列表項、卡片點擊 |
OnKeyListener | 硬件鍵盤/虛擬鍵鍵盤按鍵 | 返回鍵、菜單鍵、EditText 回車鍵 |
代碼示例
// 點擊監聽
button.setOnClickListener(v -> {
// 處理點擊事件
});
// 按鍵監聽(需 View 可聚焦)
editText.setOnKeyListener((v, keyCode, event) -> {
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
// 處理回車
return true; // 消費事件
}
return false;
});
注意事項
OnKeyListener 僅在 View 聚焦時生效
- 軟鍵盤輸入不觸發
OnKeyListener,需用 TextWatcher 或 EditorInfo.IME_ACTION_DONE
- 現代開發推薦
ViewBinding + Lambda 簡化代碼