一、应用功能及前期需求
功能:该应用可以详细记录各种办公室陋习,如随手将脏盘子丢在休息室水池里,或者自己打印完文件就走,全然不顾公共打印机里已缺纸。
需求:引入fragment,fragment是一种控制器对象,activity可委派它执行任务,通常就是管理用户界面,受管的用户界面可以是一整屛的一部分。fragment本身没有屏幕上显示视图能力,需要将它的视图放置在activity的视图层级结构中,fragment视图才能显示在屏幕上。
二、项目开发情况及重要代码展示
1、创建新项目
重要代码及过程
Crime类的新增代码及已生成的getter和setter方法(Crime.java)UUID是Android框架里的Java工具类,在构造方法里,调用ndomUUID()产生一个随机唯一ID值
fragment的生命周期:fragment生命周期与activity生命周期的一个关键区别就在于,fragment的生命周期方法由托管activity而不是操作系统调用
activity托管UI fragment有如下两种方式:
(1) 在activity布局中添加fragment(简单但不灵活)
(2)在activity代码中添加fragment(唯一可以动态控制fragment的方式)
添加字符串资源(res/values/strings.xml) fragment视图的布局文件(fragment_crime.xml) fragment视图的布局文件(fragment_crime.xml) 预览CrimeFragment布局 覆盖onCreateView(...)方法(CrimeFragment.java)fragment的视图是直接通过调用LayoutInflater.inflate(...)方法并传入布局的资源ID生成。第二个参数是视图的父视图,第三个参数告诉布局生成是否将生成的视图添加给父视图
生成并使用EditText组件(CrimeFragment.java)在onTextChanged(...)方法中,调用charSequence(代表用户输入)的toString()方法
几乎每次新建activity都需要这样一段代码,为避免重复,将其封装成抽象类,改名为SingleFragmentActivity,设置超类为AppCompatActivity
FragmentManager类具体管理:
(1) fragment对列;
(2)fragment事务回退栈;
CrimeActivity托管的CrimeFragment视图2、使用RecyclerView显示列表
crime列表
重要代码及过程
创建单例及可容纳Crime对象的List(CrimeLab.java)
是生成100个crime
声明CrimeListActivity为launcher activity(AndroidManifest.xml)
使用RecyclerView
添加Recycle让View依赖库 在布局文件中添加RecyclerView视图(fragment_crime_list.xml) 为CrimeListFragment配置试图(CrimeListFragment.java) 武装CrimeAdapter(CrimeListFragment.java) 设置Adapter(CrimeListFragment..java)绑定列表项
实现bind(Crime)方法(CrimeLsitFragment.java) 调用bind(Crime)方法(CrimeLsitFragment.java) 显示有序号的列表3、使用fragment argument
启动CrimeActivity(CrimeListFragment.java)
空白的CrimeFragment
创建newIntent方法(CrimeActivity.java)
Crime#4列表项的明细内容
编写newInstance(UUID)方法(CrimeFragment.java)
使用newInstance(UUID)方法(CrimeActivity.java)
4、使用ViewPager
创建ViewPager(CrimePagerActivity.java)
设置pager adapter(CrimePagerActivity.java)
创建newIntent方法(CrimePagerActivity.java)
设置厨师分页显示项(CrimePageActivity.java)
5、总结
因为这次7到11章虽然代码都能实现,也都能运行出来,但是总体感觉还是比较乱的,所以博客写的也有点无厘头的感觉,希望下次可以写的更好吧。
网友评论