ListView設定setOnKeyListener後OnKey無法被呼叫的問題
阿新 • • 發佈:2019-02-14
給ListView設定setOnKeyListener,然而OnKey始終無法被呼叫,網上給出的解決方法大多都是setFocusable(true).
setFocusable的原始碼如下
@Override public void setFocusable(boolean focusable) { final T adapter = getAdapter(); final boolean empty = adapter == null || adapter.getCount() == 0; mDesiredFocusableState = focusable; if (!focusable) { mDesiredFocusableInTouchModeState = false; } super.setFocusable(focusable && (!empty || isInFilterMode())); }
可見,在setFocusable(true)前必須保證adapter 不為空才有效!
(如果OnKey仍然無法被呼叫,試試requestFocus)