安卓学习笔记---Fragment 里面加webview 监听onback事件(WebView的返回以及整个退出事件)
2016-07-19 18:30
841 查看
最近我在做Fragment里面嵌套WebView的数据,对如何监听webview返回,与整个退出界面不是很懂,百度之后,也有一些方法,但是总是不能完美解决问题,在看到这篇博客之后,按照方法,完美解决,分享出来;
转载博客地址:
http://blog.csdn.net/qq_27665781/article/details/49904055
*因为搞Android没多久所以对Fragment 不是很熟悉,然后在做个项目,项目里面用了Fragment,在Fragment里面用了webview,一开始还好挺好做的,做的最后就准备收尾了,也就是细节的一些处理,在处理每个webview的back事件的时候出了个问题,我当时一心想在Fragment里面监听back事件做处理,也在网上找了很多资料,发现有几个还是可以在Fragment里面监听到back事件的但是如果你在里面写
webview.goback是没有用的先把代码贴出来在Fragment里面监听back:
一下是我自己项目里面的代码:
希望有用。
转载博客地址:
http://blog.csdn.net/qq_27665781/article/details/49904055
*因为搞Android没多久所以对Fragment 不是很熟悉,然后在做个项目,项目里面用了Fragment,在Fragment里面用了webview,一开始还好挺好做的,做的最后就准备收尾了,也就是细节的一些处理,在处理每个webview的back事件的时候出了个问题,我当时一心想在Fragment里面监听back事件做处理,也在网上找了很多资料,发现有几个还是可以在Fragment里面监听到back事件的但是如果你在里面写
webview.goback是没有用的先把代码贴出来在Fragment里面监听back:
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getView().setFocusableInTouchMode(true); getView().requestFocus(); getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) { Log.e("gif--","fragment back key is clicked"); webview.goBack(); //这方法没用的哦 getActivity().getSupportFragmentManager().popBackStack("gifPageTwoFragment", FragmentManager.POP_BACK_STACK_INCLUSIVE); return true; } return false; } }); }
一下是我自己项目里面的代码:
// 菜单、返回键响应 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { Fragment fragment=getSupportFragmentManager().findFragmentById(R.id.main_fragment); if(fragment==home_fragment) { exitBy2Click(); //这是退出方法 }else if(fragment==style_fragment) { webView=(WebView) fragment.getView().findViewById(R.id.style_webView); iswebviw(); } else if(fragment==diamonds_fragment) { webView =(WebView) fragment.getView().findViewById(R.id.diamonds_webView); iswebviw(); } else if(fragment==shoppingCart_fragment) { webView =(WebView) fragment.getView().findViewById(R.id.shopping_webview); iswebviw(); }else if(fragment==my_fragment) { exitBy2Click(); //这是退出方法 } } return false; } //返回事件还有双击推出的方法 public void iswebviw() { if(webView.canGoBack()) { webView.goBack(); } else{ exitBy2Click(); //这是退出方法 } } //双击退出方法 private void exitBy2Click() { if (!isEx) { isEx = true; ToastUtil.invokeShortTimeToast(this, "再按一次退出应用"); handler.sendEmptyMessageDelayed(0, 2000); } else { // 删除用户信息 LoginControllor.clearLastLoginInfo(); // 停止服务 stopService(new Intent(this, MessageService.class)); //清除缓存 ImageLoader.getInstance().clearDiskCache(); ImageLoader.getInstance().clearMemoryCache(); this.sendBroadcast(new Intent().setAction(AbstractBaseActivity.ACTION_EXIT)); finish(); System.exit(0); } }
希望有用。
相关文章推荐
- iOS- 评论跳转AppStore评分
- UIWebView加载本地HTML文件
- logback和slf4j的使用之appender使用
- Android将应用log信息保存文件
- Android开发之用Bmob实现短信验证码功能
- Android JAVA文件遍历小妙招
- Android 的欢迎引导页
- Android RecyclerView使用详解
- Android仿微信,上传本地多张图片,缩放预览,以及图片处理等
- 【Unity】Unity下载器下载不下IOS/Android等模块的解决办法
- Android 动画之ScaleAnimation应用详解
- iOS正则表达式
- android中ScrollView常用属性汇总
- 你可能漏掉的知识点: onResumeFragments
- Android ScrollView如何设置maxHeight
- 点击按钮改变颜色和状态之二
- android中的图片处理
- iOS开发如何使用Safari浏览器打开app
- fresco--facebook推出的一款强大的android图片处理库
- 柱状图表实现(swift)