- 1、本文档共155页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章Android用户的界面
add()函数的第1个参数groupId是组ID,用以批量的对菜单子项进行处理和排序; 第2个参数itemId是子项ID,是每一个菜单子项的唯一标识,通过子项ID使应用程序能够定位到用户所选择的菜单子项; 第3个参数order是定义菜单子项在选项菜单中的排列顺序; 第4个参数title是菜单子项所显示的标题。 * 代码第1行至第5行是定义选项菜单和子菜单所有菜单项的ID。 代码第7行使用addSubMenu()函数在选项菜单中增加了1个菜单项MENU_00,当用户点击这个菜单项后会打开子菜单。 addSubMenu()函数共有4个参数,参数1是组ID,如果不分组则可以使用0;参数2是菜单项的ID;参数3是显示排序,数字越小越靠近列表上方;参数4是菜单项显示的标题。 代码第8行设置了子菜单的图标。 代码第9行在子菜单中添加了菜单项。 * 新闻阅读程序 将界面划分为左右两部分,并使用两个Fragment实现。 左侧用来展示新闻列表,右侧用来阅读新闻的具体内容。 两个Fragment可以并排的放置在同一个Activity中,且这两个Fragment都具有自己的生命周期函数和界面输入事件。 如果不使用Fragment,开发人员就需要在一个Actvitiy中实现展示新闻列表,而在另一个Actvitiy中显示新闻的具体内容。 使用Fragment就可以将两部分功能合并到同一个Activity中实现。 * 代码第6行使用标签fragment声明了一个Fragment,在name属性中用“包+类”的方式定义了AFragment所在的类 代码第12行定义了BFragment。 代码第8行和第14行表明两个Fragment在界面上的布局权重是一样的,因此应在界面上各占50%的界面空间。 * 5.5 操作栏与Fragment 5.5.2 Tab导航栏 Tab导航栏介绍 静态类TabListener的代码 FragmentTransaction是封装了Fragment变换所要用的函数,包括将Fragment加入到Activity的add()函数,将Fragment从当前界面分离的Detach()函数,将被Detach()函数分离的Fragment重新连接到界面的attach()函数。 上面的代码具有一定的难度,部分内容涉及到Java泛型编程的内容,例如代码第1行和第12行,读者可以参考Java语言的相关资料。 5.6界面事件 5.6.1 按键事件 在MVC模型中,控制器根据界面事件(UI Event)类型不同,将事件传递给界面控件不同的事件处理函数。 按键事件(KeyEvent)将传递给onKey()函数进行处理 触摸事件(TouchEvent)将传递给onTouch()函数进行处理 5.6界面事件 5.6.1 按键事件 Android系统界面事件的传递和处理遵循一的规则 如果界面控件设置了事件监听器,则事件将先传递给事件监听器 如果界面控件没有设置事件监听器,界面事件则会直接传递给界面控件的其他事件处理函数 即使界面控件设置了事件监听器,界面事件也可以再次传递给其他事件处理函数 5.6界面事件 5.6.1 按键事件 Android系统界面事件的传递和处理遵循一的规则 是否继续传递事件给其他处理函数是由事件监听器处理函数的返回值决定的 如果监听器处理函数的返回值为true,表示该事件已经完成处理过程,不需要其他处理函数参与处理过程,这样事件就不会再继续进行传递 如果监听器处理函数的返回值为false,则表示该事件没有完成处理过程,或需要其他处理函数捕获到该事件,事件会被传递给其他的事件处理函数 5.6界面事件 5.6.1 按键事件 以EditText控件中的按键事件为例,说明Android系统界面事件传递和处理过程,假设EditText控件已经设置了按键事件监听器 当用户按下键盘上的某个按键时,控制器将产生KeyEvent按键事件 Android系统会首先判断EditText控件是否设置了按键事件监听器,因为EditText控件已经设置按键事件监听器OnKeyListener,所以按键事件先传递到监听器的事件处理函数onKey()中 5.6界面事件 5.6.1 按键事件 事件能够继续传递给EditText控件的其他事件处理函数,完全根据onKey()函数的返回值来确定 如果onKey()函数返回false,事件将继续传递,这样EditText控件就可以捕获到该事件,将按键的内容显示在EditText控件中 如果onKey()函数返回true,将阻止按键事件的继续传递,这样EditText控件就不能够捕获到按键事件,也就不能够将按键内容显示在EditText控件中 5.6界面事件 5.6.1 按键事件 Android界面框架支持对按
文档评论(0)