在Activity中重写onKeyDown方法。
获取到当前commit的Fragment判断当前Fragment是否是我们需要监听返回键的Fragment。
如果是,就调用Fragment中的相应自定义方法,并返回true;
如果不是就返回super.onKeyDown(keyCode, event),注意这里不要直接返回false,否则返回键失效。
监听其他按键也是同理。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
if (fragment instanceof GalleryFragment) {
((GalleryFragment) fragment).cancleSelect();
return true;
}
}
return super.onKeyDown(keyCode, event);
在Fragment中自定义的方法:
public void cancleSelect() {
//TODO something
}