华联学院《android软件开发》课件04手机平板要兼顾--探究碎片

上传人:东*** 文档编号:270893859 上传时间:2022-03-27 格式:PDF 页数:40 大小:1.34MB
返回 下载 相关 举报
华联学院《android软件开发》课件04手机平板要兼顾--探究碎片_第1页
第1页 / 共40页
华联学院《android软件开发》课件04手机平板要兼顾--探究碎片_第2页
第2页 / 共40页
华联学院《android软件开发》课件04手机平板要兼顾--探究碎片_第3页
第3页 / 共40页
华联学院《android软件开发》课件04手机平板要兼顾--探究碎片_第4页
第4页 / 共40页
华联学院《android软件开发》课件04手机平板要兼顾--探究碎片_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《华联学院《android软件开发》课件04手机平板要兼顾--探究碎片》由会员分享,可在线阅读,更多相关《华联学院《android软件开发》课件04手机平板要兼顾--探究碎片(40页珍藏版)》请在金锄头文库上搜索。

1、第四章手机平板要兼顾-探究碎片Android软件开发主讲:王海本章目标能够熟练使用Fragment动态设计UI界面能够熟练使用Menu和Toolbar组件能够熟练使用AdapterView、ListView和GridView掌握TabHost组件的使用Android软件开发主讲:王海FragmentAndroid从3.0开始引入Fragment(碎片)允许将Activity拆分成多个完全独立封装的可重用的组件每个组件拥有自己的生命周期和UI布局为不同型号、尺寸、分辨率的设备提供统一的UI设计方案标题列表标题列表标题标题A标题标题B 标题标题N标题标题内容内容Activity AActivity

2、 B详情详情标题标题3内容内容标题标题1标题标题2标题标题3 标题标题N选中状态灰色选中状态灰色FragmentAFragmentBAndroid软件开发主讲:王海Fragment类及子类FragmentDialogFragmentListFragmentPreferenceFragmentWebViewFragment对话框界面的对话框界面的Fragment实现列表界面的实现列表界面的Fragment选项设置界面的选项设置界面的FragmentWebView界面界面的的FragmentAndroid软件开发主讲:王海创建Fragment通常在创建Fragment时,需要实现三个方法:onCr

3、eate()onCreateView()onPause()将Fragment加载到Activity中主要有两种方式:把Fragment添加到Activity的布局文件中在Activity的代码中动态添加FragmentAndroid软件开发主讲:王海管理Fragment通过FragmentManager实现管理Fragment对象的管理通过getFragmentManager()获取FragmentManager对象FragmentManager能够完成以下三方面的操作:通过findFragmentById()或findFragmentByTag()方法,来获取Activity中已存在的Fra

4、gment对象通过popBackStack()方法将Fragment从Activity的后退栈中弹出通过addOnBackStackChangedListerner()方法来注册一个侦听器以监视后退栈的变化FragmentManager fragmentManager=getFragmentManager();FragmentTransactionfragmentTransaction=fragmentManager.beginTransaction();FragmentTransactionFragmentFragmentActivityFragment使用FragmentTransacti

5、on/创建一个新的Fragment对象Fragment newFragment=new ExampleFragment();/通过FragmentManager获取Fragment事务对象FragmentTransaction transaction=getFragmentManager().beginTransaction();/通过replace()方法把fragment_container替换成新的Fragment对象transaction.replace(R.id.fragment_container,newFragment);/添加到回退栈transaction.addToBackS

6、tack(null);/提交事务mit();Android软件开发主讲:王海Fragment程序的最后必须调用commit()方法程序中添加了多个Fragment对象,显示的顺序跟添加顺序一致当删除Fragment对象时,在没有调用addToBackStack()方法情况下,Fragment对象会被销毁commit()ActivityUIAndroid软件开发主讲:王海与Activity通讯Fragment获取其所在的Activity中的组件View listView=getActivity().findViewById(R.id.list);Activity获取指定Frament实例Exam

7、pleFragment 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软件开发主讲:王海与

8、Activity通讯使用onAttach()方法检查Activity是否实现回调接口public static class FragmentA extends ListFragment OnNewsSelectedListener mListener;.省略Overridepublic void onAttach(Activity activity)super.onAttach(activity);trymListener =(OnNewsSelectedListener)activity;catch(ClassCastException e) throw new ClassCastExcep

9、tion(activity.toString()+必须继承接口 OnNewsSelectedListener); .省略Android软件开发主讲:王海与Activity通讯Fragment与Activity共享事件public static class FragmentA extends ListFragment OnNewsSelectedListener mListener; .省略Override public void onListItemClick(ListView l,View v,int position,longid) mListener.onNewsSelected(id)

10、; .省略FragmentAFragmentBFragmentFragmentAndroid软件开发主讲:王海Fragment的生命周期Fragment的生命周期具有以下四个状态:活动状态暂停状态停止状态销毁状态添加新的添加新的FragmentonAttach()onCreate()onCreateView()onActivityCreated()onStart()onResume()Fragment处于激活状态处于激活状态onPause()onStop()onDestroyView()onDestroy()onDetach()Fragment被销毁被销毁用户按回退按键或用户按回退按键或Fra

11、gment被删除被删除、替换替换Fragment被添加到回退栈被添加到回退栈或被删除或被删除、替换替换该该Fragment从从Back栈中返回界面栈中返回界面Android软件开发主讲:王海Fragment生命周期中的方法方法功能描述onAttach()当一个Fragment对象关联到一个Activity时被调用onCreate()初始化创建Fragment对象时被调用onCreateView()当Activity获得Fragment的布局时调用此方法onActivityCreated()当Activity对象完成自己的onCreate()方法时调用onStart()Fragment对象在UI

12、界面可见时调用onResume()Fragment对象的UI可以与用户交互时调用onPause()由Activity对象转为onPause状态时调用onStop()有组件完全遮挡,或者宿主Activity对象转为onStop状态时调用onDestroyView()Fragment对象清理View资源时调用,即移除Fragment中的视图onDestroy()Fragment对象完成对象清理View资源时调用onDetach()当Fragment被从Activity中删掉时被调用Android软件开发主讲:王海Fragment和Activity两者之间生命周期的关系onAttach()onCre

13、ate()onCreateView()onActivityCreated()onStart()onResume()onPause()onStop()onDestroyView()onDestroy()onDetach()onCreate()onStart()onResume()onPause()onStop()onDestroy()Android软件开发主讲:王海Menu菜单Android中提供的菜单有如下几种:选项菜单子菜单上下文菜单图标菜单扩展菜单系统创建菜单的方法主要有以下两种:onCreateOptionsMenu():创建选项菜单onCreateContextMenu():创建上下文

14、菜单上下文菜单Android软件开发主讲:王海Options Menu选项菜单使用onCreateOptionsMenu()回调方法对菜单进行初始化使用onPrepareOptionsMenu()方法动态改变选项菜单的内容Android软件开发主讲:王海响应菜单项Android为菜单提供了两种响应方式:onOptionsItemSelected()方法onMenuItemSelected()方法onMenuItemSelected与onOptionsItemSelected区别:onMenuItemSelected():当选择选项菜单或上下文菜单都会触发该事件处理方法onOptionsItem

15、Selected():该方法只在选项菜单被选中时才会被触发ActivityonMenuItemSelected()onOptionsItemSelected()onMenuItemSelected()onOptionsItemSelected()Android软件开发主讲:王海SubMenu子菜单创建子菜单的步骤:重写Activity类的onCreateOptionsMenu()方法调用Menu的addSubMenu()方法添加子菜单调用SubMenu的add()方法为子菜单添加菜单项重写Activity类的onOptionsItemSelected ()方法setIcon()MenuBuil

16、deroptionalIconsVisiblefalseMenuBuildersetOptionalIconsVisible()trueAndroid软件开发主讲:王海ContextMenu上下文菜单上下文菜单是通过调用ContextMenu接口中的方法来实现Menu、ContextMenu关系示意图Activity菜单模块菜单模块MenuMenuItemContextMenu继承继承包含一个单例的包含一个单例的Menu对象对象onCreateContextMenu回调回调onContextMenuSelected回调回调ViewView子类子类继承继承ContextMenuInfoContextMenuInfo子类子类关联关联创建并返回创建并返回继承继承为为ContextMenu分配分配View对象对象1 1n n1 1n n1 1n nAndroid软件开发主讲:王海ContextMenu上下文菜单onCreateContextMenu()方法来生成ContextMenu对象onCreateContextMenu(ContextMenu menu, View v,ContextMe

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 手机/mobile开发

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号