本节目录:
- 托管 UI fragment
- 使用 RecyclerView
- 使用 fragment argument
- 使用 ViewPager
- 使用 DialogFragmen
在初学 android 中总是记不住一个控件的使用,用法,通过这种提纲加一点详细说明的方式,方便以后再开发中,快速找到和回忆起相关操作,减少百度查资料的时间。可能总结的不是那么完善,通过后期不断的翻看,以及实践过程中的不断使用,完善这种总结。
托管 UI fragment
fragment的生命周期
托管的两种方式
fragment 使用
- 定义容器视图(FrameLayout)
- 创建 UI fragment 类
- onCreateView 定义布局文件中的组件
- 将 fragment 添加到 托管actiivty中 FragmentManager(负责发 fragment添加到 activity 视图层级结构)
- fragment 事务组装用户界面
添加 UI fragment 到 FragmentManager
FragmentManager的概念
FragmentManager的管理
1. fragment 队列
2. fragment 事务回退栈
fragment 事务
FragmentManager 与 fragment 的生命周期
使用 RecyclerView 显示列表
基本流程: 创建Adapter 获取模型层数据并绑定 ViewHolder 给视图,然后将 Adapter 添加个 RecyclerView
使用抽象 activity 托管 fragment(将相同的activity 将重复部分封装为抽象类,每个 activity 都继承这个抽象类)
RecyclerView、Adapter 和 ViewHolder
ViewHolder 和 Adapter
- viewholder -adapter
使用 RecyclerView
- 导入依赖 - 定义容器视图(RecyclerView) - 通过代码实例化视图(onCreateView方法中,需要 LayoutManager 的支持) - 定义 ViewHolder 的内部类 (继承 RecyclerView.ViewHolder) - 创建 adapter 的内部类 ( 继承 RecyclerView.Adapter<ViewHolder> )
1. onCreateViewHolder() --需要使用列表布局
2. onBindViewHolder()
3. getItemCount()
- 给 RecyclerView 设置适配器
响应点击
验证每个 ItemView 是否有效
- 添加 View.OnClickerListerner 接口
- 覆写 onClick 方法
- 给每个 ItemView 设置监听器
使用 fragment argument
每个 fragment 实例都可附带一个 Bundle 对象。格式为键值对形式,一个键值对即一个 argument
- 先创建 Bundle
- 使用 bundle put 类型方法,将 argument 添加到 bundle 中
code
附加 argument 给 fragment
格式: Fragment.setArguments(Bundle)
必须在 fragment 创建后、添加给 activity 前完成
利用 getArguments().get 获取
通过 fragment 获取返回结果
类似与 Activity 调用 startActivityForResult() ,转而调用 Fragment.startActivityForResult()
接受也是从 Activity 到 Fragment 中,其中要注意的是 fragment 对返回结果处理不同
- 自身无法持有返回结果,只用 activity 拥有返回结果
|
|
使用 ViewPager
- 创建 一个 ViewPager 类
- 定义容器组件
- 在 ViewPager 关联 ViewPager 和 adapter
- 修改
ViewPager 和 PagerAdapter
PagerAdapter 子类 FragmentStatePagerAdapter
FragmentStatePagerAdapter 的抽象方法
- getCount()
- getItem(int)
还有实例需要 FragmentManager
使用 DialogFragment
1. 创建 DialogFragment 类
2. 继承 DialogFragment
3. 覆写 onCreateDialog 方法
4. 方法内返回 AlertDialog.builder 创建的 Builder 对象(setView-setTitle-setPositiveButton)
5. 创建 FragmentManager
6. show(manger,xxx) 显示对话框
工具栏菜单
1. 定义 XML 菜单文件
2. onCreateOptionsMenu()方法创建菜单
3. onOptionsItemSelected()对菜单进行操作处理
实现层级式导航
1. 在注册文件清单上向详情 Activity 上添加 向上按钮parentActivityName()
SQLite 数据库
1. 创建一个数据库表字段的类
2. 创建初始化数据库,用到SQLiteOpenHelper类
3. 覆写两个方法,一个 onCreate 创建数据库 一个 onUpgrade创建数据库
4. 初始化数据库并授权权限
5. ContentValues 负责处理数据库写入和更新操作。格式为键值对数据(这个类用户数据库操作使用)
6. 数据库的insert update delete 操作
CursorWrapper 类
封装数据表的原始数据 从cursor 获取数据