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. mysql 字段索引的問題2. mysql - 我用SQL語句 更新 行的時候,發現全部 中文都被清空了,請問怎么解決?3. 為什么我寫的PHP不行4. phpStudy2017輕巧版mysql無法啟動5. 關于phpstudy設置主從數據庫6. 文本處理 - 求教使用python庫提取pdf的方法?7. MySQL在什么情況下會被堵死?8. python3.x - python3.5使用pyinstaller打包報錯找不到libpython3.5mu.so.1.0等文件求解?9. mysql 優化之性別優化10. python - 求助,ValueError: View function did not return a response
