拥有大量相同结构Activity的项目精简经验—— ReUsableActivity
来源:互联网 发布:商品标题搜索优化 编辑:程序博客网 时间:2024/05/02 04:30
简介
一个可以重复利用的Activity.通过设置不同的Fragment加入到一个可复用的Activity中实现代码的精简。
这个仓库可以用来精简项目中拥有大量重复的AppBar布局的Android App。
介绍
一直以来,大家对臃肿的Activity就不是很喜欢,都在试图减少Activity的数量,通过利用Fragment来实现代码的精简和提高运行效率。这个仓库就是设计了一个可以重复利用的Actvity,用填充Fragment的方式来进行代码精简。大大减少了Activity的数量。
同时,我承认这个只是一种重复利用的思想,至于更优雅的实现方式还请各位指教。
最后效果如下:
以下代码来获取通用Activity向外界展示的式样。fragmentType声明了加载哪一种Fragment,title声明了Activity应该显示的title.
// 获取启动该Result的Intent Intent intent = getIntent(); // 获取该intent所携带的数据 Bundle data = intent.getExtras(); // 从Bundle包中取出数据 fragmentType = data.getInt("fragmentType"); title = data.getString("title");
以下代码来说明要加载的Fragment.是由传入的fragmentType来确定的。
switch (fragmentType) { case 0: title = "空白界面"; fragment = new BaseFragment(); break; default: ///////////////////////////////////////////////////////// fragment = new TestFragment(); // 把参数传给fragment。 fragment.setArguments(data); break; }
其他的交给ReUsableActivity来实现。即是由FragmentManager来管理。和普通的Activity中显示Fragment原理相同,因此不做详细介绍,可参见代码。
上面Demo的代码是在Fragment中点击向ReUsableActivity传参数用来显示title,同时新的ReUsableActvity向新的Fragment传数据用来Fragment的展示。
在实际利用中,在需要用ReUsableActivity时传递给ReUsableActivity参数并且打开此Activity即可。
上面的项目的结构如下,虽然有众多的Acitvity显示,但是代码中却只有两个Acitvity.
结语
尽可能进行代码复用,来精简项目,这个是项目中的一个小小的经验,分享出来,希望大家能提供一个更好的解决方案。
项目已经开源,仓库在https://github.com/fuxuemingzhu/ReUsableAcitvity。希望大家指教。
- 拥有大量相同结构Activity的项目精简经验—— ReUsableActivity
- 项目重构经验一 ——重新规划Android项目的目录结构
- 推荐一个拥有大量开源项目和开发工具的网站
- 拥有大量特性的前端框架 - Maxmertkit
- 将拥有相同字段的数据项合并
- 【CROC 2016 — QualificationC】【STL大联合】Hostname Aliases 输出拥有相同后缀集合的全体字符串
- 大量数据的页面结构
- 第十六周OJ项目——有相同的数字
- EJB项目:点击查看显示角色拥有的权限树型结构
- 你该拥有自己的一套项目结构----Kotlin+Dagger2+MVP+Rx+Retrofit
- flume高并发优化——(2)精简结构
- 自己写的几个练习代码——精简精简再精简
- 让项目拥有变化的能力——依赖倒置原则
- 分支结构、大量选择、if—else、switch case
- 剔除大量数据中相同元素的办法[asp]
- 如何关掉大量名称相同的进程-任务管理器
- 随笔——珍惜拥有的一切
- Android Studio项目精简结构,瘦体储存
- 设置加载失败,正在加载,界面。
- 问与答——人物传记推荐
- 常见排序算法的Java实现代码汇总
- Android-Preproty animation解析
- Android项目实战--【谁是歌手-逻辑实现篇】
- 拥有大量相同结构Activity的项目精简经验—— ReUsableActivity
- ConcurrentHashMap原理分析
- BZOJ2038 2009国家集训队 小Z的袜子(hose) 题解&代码
- 解决Genymotion无法下载虚拟设备的问题
- 2016年算法之大数乘法
- jstack线程状态分析
- Android---universal-image-loader应用
- 寻找百度图片搜索接口--two
- poj1995——Raising Modulo Numbers(快速幂取余)