Activity可以直接重写onBackPressed监听返回键,但是fragment不能直接监听。一种方法是通过接口回调实现监听,就是在Fragment中实现回调接口,Activity中重写onBackPressed,然后调用接口,该方法稍微麻烦了一点,下面是一个简洁的方式,参考原文:http://stackoverflow.com/questions/22552958/handling-back-press-when-using-fragments-in-android
在Fragment中重写onResume方法,实现OnKeyListener并监听按键:
说明:这种方法如果界面中存在输入框则不太适用,因为输入框会抢占焦点
@Override
public void onResume() {
super.onResume();
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
// handle back button
return true;
}
return false;
}
});
}