最近在音乐播放器上碰见onKeyDown的问题,focus在listView上,所以,上层的activity无法收到,而是被listView拦截了。
后来想想view的keyevent,有很多处理。例如dispatchKeyEvent。
重写这个dispatchKeyEvent即可,拦截处理listView中keydown的相关操作。
@Override
public boolean dispatchKeyEvent(KeyEvent event) { ListView list = (ListView) findViewById(R.id.musiclist); if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_PAGE_UP: //Log.d(TAG, "====page up===="); updatePage(true); list.setSelection(0); updateInfoMation(); return true; case KeyEvent.KEYCODE_PAGE_DOWN: //Log.d(TAG, "=====page down====="); updatePage(false); list.setSelection(0); updateInfoMation(); return true; } } return super.dispatchKeyEvent(event); } |
|
来自: _私_房_菜_ > 《android 问题总结》