私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第四章 手机平板要兼顾——探究碎片

第四章 手机平板要兼顾一探究碎片 主讲:王海
第四章 手机平板要兼顾--探究碎片 主讲:王海

本章目标 能够熟练使用Fragmentz动态设计UI界面 能够熟练使用Menu和Toolbar组件 能够熟练使用AdapterView、ListView和GridView 掌握TabHost组件的使用 Android软件开发 主讲王海
Android软件开发 主讲:王海 本章目标 • 能够熟练使用Fragment动态设计UI界面 • 能够熟练使用Menu和Toolbar组件 • 能够熟练使用AdapterView、ListView和GridView • 掌握TabHost组件的使用

Fragment Android.从3.0开始引入Fragment(碎片) 允许将Activity拆分成多个完全独立封装的可重用的组件 每个组件拥有自己的生命周期和UI布局 为不同型号、尺寸、分辨率的设备提供统一的U设计方案 标题列表 FragmentA FragmentB 标题 标题A 标题1 详情 标愿3 标题B 标愿2 选中状态灰色 标题3 内容 内容 标题N 标愿N Activity A Activity B Android软件开发 主讲:王海
Android软件开发 主讲:王海 Fragment • Android从3.0开始引入Fragment(碎片) • 允许将Activity拆分成多个完全独立封装的可重用的组件 • 每个组件拥有自己的生命周期和UI布局 • 为不同型号、尺寸、分辨率的设备提供统一的UI设计方案 标题列表 标题A 标题B ··· 标题N 标题 内容 Activity A Activity B 详情 标题3 内容 标题1 标题2 标题3 ··· 标题N 选中状态灰色 FragmentA FragmentB

Fragment类及子类 Fragment DialogFragment ListFragment PreferenceFragment WebViewFragment 对话框界面的 实现列表界面的 选项设置界面的 WebView界面 Fragment Fragment Fragment 的Fragment Android软件开发 主讲:王海
Android软件开发 主讲:王海 Fragment类及子类 Fragment DialogFragment ListFragment PreferenceFragment WebViewFragment 对话框界面的 Fragment 实现列表界面的 Fragment 选项设置界面的 Fragment WebView界面 的Fragment

创建Fragment 通常在创建Fragment时,需要实现三个方法: ■onCreate0 ■ onCreateView() ■ onPause() ·将Fragment加载到Activity中主要有两种方式: ■把Fragment添加到Activity的布局文件中 ■ 在Activity的代码中动态添加Fragment Android软件开发 主讲:王海
Android软件开发 主讲:王海 创建Fragment • 通常在创建Fragment时,需要实现三个方法: onCreate() onCreateView() onPause() • 将Fragment加载到Activity中主要有两种方式: 把Fragment添加到Activity的布局文件中 在Activity的代码中动态添加Fragment

管理Fragment 通过FragmentManager3实现管理Fragment对象的管理 ·通过getFragmentManager(0获取FragmentManagerx对象 。 FragmentManager能够完成以下三方面的操作: 通过findFragmentById()或findFragmentByTag0方法,来获取Activity中 已存在的Fragment)对象 通过oopBackStack(0方法将Fragment从Activity的后退栈中弹出 ■ 通过addOnBackStackChangedListerner0方法来注册一个侦听器以监视后 退栈的变化 Android软件开发 主讲:王海
Android软件开发 主讲:王海 管理Fragment • 通过FragmentManager实现管理Fragment对象的管理 • 通过getFragmentManager()获取FragmentManager对象 • FragmentManager能够完成以下三方面的操作: 通过findFragmentById()或findFragmentByTag()方法,来获取Activity中 已存在的Fragment对象 通过popBackStack()方法将Fragment从Activity的后退栈中弹出 通过addOnBackStackChangedListerner()方法来注册一个侦听器以监视后 退栈的变化

管理Fragment FragmentManager fragmentManager=getFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); FragmentTransaction被称作Fragment事务,与数据库事务类似,Fragment事 注意 务代表了Activity对Fragment执行的多个改变操作。 使用FragmentTransaction /创建一个新的Fragment对象 Fragment newFragment=new ExampleFragment () //通过FragmentManager获取Fragment事务对象 FragmentTransaction transaction=getFragmentManager().beginTransaction(); /通过replace(O方法把fragment_container替换成新的Fragment对象 transaction.replace(R.id.fragment_container,newFragment); //添加到回退栈 transaction.addToBackStack(null); //提交事务 transaction.commit ()
FragmentManager fragmentManager=getFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); FragmentTransaction Fragment Fragment Activity Fragment • 使用FragmentTransaction //创建一个新的Fragment对象 Fragment newFragment=new ExampleFragment(); //通过FragmentManager获取Fragment事务对象 FragmentTransaction transaction=getFragmentManager().beginTransaction(); //通过replace()方法把fragment_container替换成新的Fragment对象 transaction.replace(R.id.fragment_container,newFragment); //添加到回退栈 transaction.addToBackStack(null); //提交事务 transaction.commit();

Fragment事务注意事项 程序的最后必须调用commit(0方法 ·程序中添加了多个Fragment>对象,显示的顺序跟添加顺序一致 当删除Fragment>对象时,在没有调用addToBackStack0方法情况下, Fragment>对象会被销毁 调用commit()后,事务并不会马上提交,而是会在Activity的UI线程中等待 注意 直到线程能执行的时候才执行。 Android软件开发 主讲:王海
Android软件开发 主讲:王海 Fragment • 程序的最后必须调用commit()方法 • 程序中添加了多个Fragment对象,显示的顺序跟添加顺序一致 • 当删除Fragment对象时,在没有调用addToBackStack()方法情况下, Fragment对象会被销毁 commit() Activity UI

与Activity通讯汛 Fragment获取其所在的Activity中的组件 View listview=getActivity().findviewById(R.id.list); Activity获取指定Frament:实例 ExampleFragment fragment (ExampleFragment)getFragmentManager() findFragmentById(R.id.example fragment) 在Fragment中定义回调接口 public static class FragmentA extends ListFragment ,…··.省略 //Activity必须实现下面的接口 public interface OnNewsSelectedListener{ //传递当前被选中的标题的id public void onNewsSelected(long id); } ·.省略 Android软件开发 主讲:王海
Android软件开发 主讲:王海 与Activity通讯 • Fragment获取其所在的Activity中的组件 View listView=getActivity().findViewById(R.id.list); • Activity获取指定Frament实例 ExampleFragment fragment = (ExampleFragment)getFragmentManager() .findFragmentById(R.id.example_fragment) • 在Fragment中定义回调接口 public static class FragmentA extends ListFragment { ......省略 //Activity必须实现下面的接口 public interface OnNewsSelectedListener{ //传递当前被选中的标题的id public void onNewsSelected(long id); } ......省略 }

与Activity通讯 使用onAttach()方法检查Activity是否实现回调接口 public static class FragmentA extends ListFragment OnNewsSelectedListener mListener; ..·.省略 @Override public void onAttach(Activityactivity){ super.onAttach(activity); try( mListener =(OnNewsSelectedListener)activity; }catch(ClassCastException e){ throw new classCastException(activity.tostring() +"必须继承接口OnNewsSelectedListener"): } } .省略 Android软件开发 主讲:王海
Android软件开发 主讲:王海 与Activity通讯 • 使用onAttach()方法检查Activity是否实现回调接口 public static class FragmentA extends ListFragment { OnNewsSelectedListener mListener; ......省略 @Override public void onAttach(Activity activity){ super.onAttach(activity); try{ mListener =(OnNewsSelectedListener)activity; }catch(ClassCastException e){ throw new ClassCastException(activity.toString() +"必须继承接口 OnNewsSelectedListener"); } } ......省略 }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第三章 软件开发也要拼脸蛋——UI开发的点点滴滴.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第二章 先从看得到的入手——探究活动.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第一章 开始启程——你的第一行android代码(负责人:王海).pdf
- 《Oracle数据库》课程教学资源(PPT课件讲稿)视图.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)表空间应用.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)约束.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)用户管理.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)数据库一致性与事务管理.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)序列.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)创建数据库.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL查询.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)SQL更新数据.ppt
- 《Oracle数据库》课程教学资源(PPT课件讲稿)Oralce数据库与数据表.ppt
- 《Oracle数据库》课程教学资源(试卷习题)练习和解答(Oracle Database 11g).pdf
- 《Oracle数据库》课程教学资源(实验指导)ORACLE数据库项目案例(实验文档).pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库课程标准.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle数据库授课计划表.pdf
- 私立华联学院:《Oracle数据库》课程教学资源(教学大纲)Oracle11g数据库电子教案.pdf
- 《Oracle数据库》课程教学资源(拓展资料)Oracle物化视图.pdf
- The End of Slow Networks - It’s Time for a Redesign [Vision].pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第五章 全局大喇叭——详解广播机制.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第六章 数据存储全方案——详解持久化技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第七章 跨程序共享数据——探究内容提供器.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第八章 丰富你的程序——运用手机多媒体.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第九章 看看精彩的世界——使用网络技术.pdf
- 私立华联学院:《Android软件开发》课程电子教案(课件讲稿)第十章 后台默默的劳动者——探究服务.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)人工智能课程总结.pdf
- 中国人民大学:《人工智能》课程教学资源(作业摘选)SCIgen生成文献的检测方案.pdf
- 《人工智能》课程教学资源(参考资料)基于Jupyter Notebook的Tensorflow深度学习教程.pdf
- 南京农业大学:《Web 应用系统开发》课程教学大纲.pdf
- 南京农业大学:《软件工程》课程教学大纲.pdf
- 南京农业大学:《面向对象程序设计实验》课程教学大纲.pdf
- 南京农业大学:《数据库系统原理实验》课程教学大纲.pdf
- 南京农业大学:《数据结构实验》课程教学大纲.pdf
- 南京农业大学:《数据库系统原理》课程教学大纲.pdf
- 上海海洋大学:信息学院各专业课程教学大纲(汇编).pdf
- 西安电子科技大学:计算机软件开发模式和工具与标准发展历程(主讲:徐悦甡).pdf
- 西安电子科技大学:《构件与中间件技术》课程教学资源(课件讲稿)第一部分 软件构件与中间件(主讲:徐悦甡).pdf
- 西安电子科技大学:《构件与中间件技术》课程教学资源(课件讲稿)第二部分 Java EE与EJB 2.2 Java Web工程.pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)文本聚类(Text Clustering).pdf