我的应用程序中有一项活动,我有 2 个片段 - A和B。在MainActivity布局中有一个 FrameLayout。从MainActivity我调用 FragmentManager 将片段 A 加载到 FrameLayout 中。然后,我从片段 A 将片段 B加载到 FrameLayout 中。在我的片段 B中,我从MainActivity实现onBackPressed()和 *onKeyDown(int _a, KeyEvent _b)*以使后退按钮与片段 B 中的WebView一起使用。但它就像我没有实现它一样工作!
MainActivity 接口:
public interface onKeyDownListener {
public void onBackPressed();
public boolean onKeyDown(int _a, KeyEvent _b);
}
片段 B 实现:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return getActivity().onKeyDown(keyCode, event);
}
public void onBackPressed() {
if (mWebView.isFocused() && mWebView.canGoBack()) {
mWebView.goBack();
} else {
Toast.makeText(getActivity().getApplicationContext(), "This's working!", 50000).show();
getActivity().onBackPressed();
}
}
这些方法都不起作用,后退按钮只是关闭应用程序。