笔记63 | 个人项目“易来”开发记录《二》处理Fragment中返回的问题
2018-01-16 17:21
721 查看
需求描述
问题:一个WebView放在Fragment中,我们都知道webView有一个goBack()方法,可以通过该方法对网页进行后退处理,由于Fragment本身并没有监听onBackPressed的方法,又处于一个Activity中,Activity除又对后退进行了3秒确定退出处理,所有导致
1. Fragment中的WebView无法进行goBack();
需求:
需要在Fragment中监听到返回键,当WebView可以后退网页的时候,进行后退网页,当没有可后退的网页时(首页状态),点击返回调Activity中的onBackPressed方法;
处理方案
这位大神的方案大神讲得通俗易懂,对我来说难度稍大,实现后再慢慢消化。。。
MianActivity:
public class Main extends FragmentActivity implements OnCheckedChangeListener,Framelayout3.BackHandLerInterface{ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... if (!(getActivity() instanceof BackHandLerInterface)) { throw new ClassCastException("Hosting activity must implement BackHandlerInterface"); }else{ backHandLerInterface = (BackHandLerInterface) getActivity(); } } ... @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); backHandLerInterface.setSelectedFragment(this); } ... private Framelayout3 framelayout3; private long mTickForShow; @Override public void onBackPressed() { if (framelayout3 == null || !framelayout3.onBackPressed()) { backPress(); } } public void backPress(){ if (SystemClock.uptimeMillis()-mTickForShow<3000) { finish(); }else{ showToast(getString(R.string.gameover)); } mTickForShow=SystemClock.uptimeMillis(); } ... @Override public void setSelectedFragment(Framelayout3 backHandledFragment) { this.framelayout3 = backHandledFragment; } }
Fragment:
public boolean onBackPressed() { if (webView.canGoBack()) { webView.goBack(); return true; }else{ return false; } } ... protected BackHandLerInterface backHandLerInterface; public interface BackHandLerInterface{ public void setSelectedFragment(Framelayout3 backHandledFragment); }
相关文章推荐
- 笔记62 | 个人项目“易来”开发记录《一》实现号码测凶吉功能模块
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)
- 开发错误处理记录(framework框架版本导致的引用问题)
- Firefox扩展开发笔记 - ajax返回乱码字符的处理
- 软件开发项目进度控制中要处理好的四个问题
- [项目过程中所遇到的各种问题记录]工具篇——.NET开发时常用的工具类库
- 用thinkphp开发项目常见问题记录
- 移动web项目开发问题笔记
- 没头没尾--项目开发笔记:项目问题的阶段性总结,下一步…………
- IOS开发笔记-字符串转换为日期时间存在时差问题的处理
- 移动项目开发笔记(禁止一个按钮在服务器事件处理完成前连续点击按钮)
- 苹果开发 笔记(80)升级IOS 9 和 XCode 7 引起的问题记录
- 驱动开发中碰到的一些问题笔记记录一下
- 开发错误处理记录(framework框架版本导致的引用问题)
- TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总
- 项目实现过程中遇到的问题记录(二)------------在Thread中使用CallBack并没有调用CallBack的返回
- [学习笔记]Silverlight4 RIA 开发全程解析[项目全程记录]----第一章FitnessTrackerPlus应用程序概述
- 【Cocos2d-X开发学习笔记】解决Cocos2d-X新建项目运行报错的问题