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 glide asbitmap 在baseadpter中的问题2. 网页爬虫 - 如何使用使用java抓取信息并制作一个排名系统?3. 这是什么情况???4. 关于纯用css写导航鼠标移入事件的问题?5. 测试自动化html元素选择器元素ID或DataAttribute [关闭]6. php - 微信开发验证服务器有效性7. javascript - angular锚点问题8. PHP类封装的插入数据,总是插入不成功,返回false;9. javascript - requestAnimationFrame如何控制帧速?10. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?

网公网安备