android - Fragment中的WebView如何監聽其返回監聽事件?
問題描述
我在Fragment的布局中放置了一個WebView,想監聽WebView的返回鍵,該如何實現?
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) {if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true;}return false; }}); }
這樣監聽沒用
問題解答
回答1:Fragment 本身是沒有 Activity#onBackPressed() 這樣的接口的, 所以需要 Activity 主動通知 Fragment :
public class ActivityA extends Activity { ... ...@Override public void onBackPressed() {FragmentA fragment = findFragmentA();if (fragment.onBackPressed()) { return ;}super.onBackPressed(); }}public class FragmentA extends Fragment { public boolean onBackPressed() {if (webview.canGoBack()) { webview.goBack(); return true;}return false; }}
相關文章:
1. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)2. python - pyspider phantomjs內存泄漏和假死怎么解決呢?3. python - Pycharm一句代碼寫完可以自動補全空格么?4. tp5 不同控制器中的變量調用問題5. 這段代碼既不提示錯誤也看不到結果,請老師明示錯在哪里,謝謝!6. php7.3.4中怎么開啟pdo驅動7. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)8. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?9. 微信小程序可以用gulp,webpack嗎?10. 老師 我是一個沒有學過php語言的準畢業生 我希望您能幫我一下
