0
我在我的應用程序中有一個活動,我有2個片段 - A和B。在MainActivity佈局中有一個FrameLayout。從MainActivity我調用FragmentManager將片段A加載到FrameLayout中。然後,從片段A我加載片段B到FrameLayout中。 在我B片段我實現onBackPressed()和*的onkeydown(INT _a,_b的KeyEvent)*從MainActivity使後退按鈕的工作與片段B. 的WebView但它的工作原理,如果我沒不實施它!onBackPressed和onKeyDown不工作
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();
}
}
這些方法沒有一個工作,返回鍵直接關閉應用程序。
你是什麼意思?我試圖@Override它,但它並沒有工作。 –
片段沒有onBackPressed功能。所以這就是爲什麼它沒有被調用。活動有他們,而不是碎片。 @Override不工作應該告訴你,碎片沒有一個名爲的函數,所以它不會被調用。 –
是的,我知道,但我從MainActivity實現這些功能。我應該以不同的方式去做嗎? –