- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android UI界面编程
简述
Chateau
Aerlian
布局
菜单的生成
对话框的生成
UI事件处理
在Android,有多种方法可以截取用户与应用程序之间的事件交互。考虑到用户界面上的事件,可以通过用户操作的界面所对应的View对象来获取。View类提供了相关的方法。
在构建界面布局时,会使用到View类,其中有一些公共的回调函数,对用户界面事件是有用的。当对应的View 上有事件发生时,这些回调函数将被Android的Framework调用。例如,一个View(属于一个Button)被触摸点击,onTouchEvent()方法将被调用。为了去获取该事件,开发者必须扩展这个类,并且重载这个方法。但是,扩展每一个View对象实例以便去获取事件,这样做是不实际的。这就是为什么View类也包含一些嵌套的接口,该接口和回调函数一起使用,方便定义。这些接口叫做事件监听,能通过他们来获取用户与界面的交互。
当经常地使用事件监听时,可能也会需要扩展一个View类,以便去构建一个用户自定义元素。也许你希望去扩展一个Button类去做一些其他事情。在该情况下,你将能够通过使用eventhandlers去定义缺省的事件行为。
事件监听
一个事件监听是View类中的一个接口,其中包含一个单一的回调方法。当View监听被注册并被用户操作所触发时,Android框架将调用这些方法。
OnClick()
来自View.OnClickListener.,用户点击Item(Touch模式)、提起导航键、按下轨迹球、按下enter键时触发。
OnLongClick()
来自View.OnLongClickListener.,用户长按Item(Touch模式)、长按导航键、长按轨迹球、长按enter键。
OnFocueChange()
来自View.OnFocusChangeListener.,用户使用轨迹球或者是导航键去移动光标。
OnKey()
来自View.OnKeyListener,用户按下或者释放一个Key设备。
OnTouch()
来自View.OnTouchListener,用户的触摸事件,例如按下、释放、移动等。
OnCreateContextMenu()
来自View.OnCreateContextMenuListener,当一个ContextMenu被构建时触发。
上述方法是他们对应的接口的常见处理。定义其中的一个方法然后处理事件。在Activity中实现嵌套接口,或者定义他们为一个未命名的类。然后,将实现的实例传递给对应的View.set…Listener方法。例如:
// Create an anonymous implementation of OnClickListenerprivate OnClickListener mCorkyListener = new OnClickListener() {? ? public void onClick(View v) {? ? ? // do something when the button is clicked
? ? }};protected void onCreate(Bundle savedValues) {? ? ...? ? // Capture our button from layout? ? Button button = (Button)findViewById(R.id.corky);? ? // Register the onClick listener with the implementation above? ? button.setOnClickListener(mCorkyListener);? ? ...}
onLongClick() 返回TURE,已处理,FALSE,未处理,可以给其他监听者处理
onKey() 返回TURE,已处理,FALSE,未处理,可以给其他监听者处理
onTouch(),返回FALSE,则其后的事件也不关心
键盘事件总是传递到当前有光标的View。他们总是从View布局架构的顶端开始往下传递,直到抵达合适的目的地。如果你的View(可能是Sub View)当前拥有光标,则能够发现事件经过了Dispatchkeyevent()方法。如果需要通过View处理所有的key事件,则可以在Activity的onkeyDown(),onKeyUp()中接收到事件。
返回Ture,将终止事件,事件不再向其他监听者发送。
事件处理
如果通过一个VIEW构建一个自定义的元素,则你能够定义一些回调函数用作缺省的事件处理。包括:
onKeyDown(
文档评论(0)