欢迎来到天天文库
浏览记录
ID:37925587
大小:38.00 KB
页数:3页
时间:2019-06-02
《Android+UI界面编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AndroidUI界面编程简述ChateauAerlian布局菜单的生成对话框的生成UI事件处理在Android,有多种方法可以截取用户与应用程序之间的事件交互。考虑到用户界面上的事件,可以通过用户操作的界面所对应的View对象来获取。View类提供了相关的方法。在构建界面布局时,会使用到View类,其中有一些公共的回调函数,对用户界面事件是有用的。当对应的View上有事件发生时,这些回调函数将被Android的Framework调用。例如,一个View(属于一个Button)被触摸点击,onTouchEvent()方法将被
2、调用。为了去获取该事件,开发者必须扩展这个类,并且重载这个方法。但是,扩展每一个View对象实例以便去获取事件,这样做是不实际的。这就是为什么View类也包含一些嵌套的接口,该接口和回调函数一起使用,方便定义。这些接口叫做事件监听,能通过他们来获取用户与界面的交互。当经常地使用事件监听时,可能也会需要扩展一个View类,以便去构建一个用户自定义元素。也许你希望去扩展一个Button类去做一些其他事情。在该情况下,你将能够通过使用eventhandlers去定义缺省的事件行为。事件监听一个事件监听是View类中的一个接口,其中
3、包含一个单一的回调方法。当View监听被注册并被用户操作所触发时,Android框架将调用这些方法。OnClick()来自View.OnClickListener.,用户点击Item(Touch模式)、提起导航键、按下轨迹球、按下enter键时触发。OnLongClick()来自View.OnLongClickListener.,用户长按Item(Touch模式)、长按导航键、长按轨迹球、长按enter键。OnFocueChange()来自View.OnFocusChangeListener.,用户使用轨迹球或者是导航键去移
4、动光标。OnKey()来自View.OnKeyListener,用户按下或者释放一个Key设备。OnTouch()来自View.OnTouchListener,用户的触摸事件,例如按下、释放、移动等。OnCreateContextMenu()来自View.OnCreateContextMenuListener,当一个ContextMenu被构建时触发。上述方法是他们对应的接口的常见处理。定义其中的一个方法然后处理事件。在Activity中实现嵌套接口,或者定义他们为一个未命名的类。然后,将实现的实例传递给对应的View.se
5、t…Listener方法。例如://CreateananonymousimplementationofOnClickListenerprivateOnClickListenermCorkyListener=newOnClickListener(){ publicvoidonClick(Viewv){ //dosomethingwhenthebuttonisclicked }};protectedvoidonCreate(BundlesavedValues){ ... //Captureourbuttonfroml
6、ayout Buttonbutton=(Button)findViewById(R.id.corky); //RegistertheonClicklistenerwiththeimplementationabove button.setOnClickListener(mCorkyListener); ...}onLongClick()返回TURE,已处理,FALSE,未处理,可以给其他监听者处理onKey()返回TURE,已处理,FALSE,未处理,可以给其他监听者处理onTouch(),返回FALSE,则其后的事件
7、也不关心键盘事件总是传递到当前有光标的View。他们总是从View布局架构的顶端开始往下传递,直到抵达合适的目的地。如果你的View(可能是SubView)当前拥有光标,则能够发现事件经过了Dispatchkeyevent()方法。如果需要通过View处理所有的key事件,则可以在Activity的onkeyDown(),onKeyUp()中接收到事件。返回Ture,将终止事件,事件不再向其他监听者发送。事件处理如果通过一个VIEW构建一个自定义的元素,则你能够定义一些回调函数用作缺省的事件处理。包括:onKeyDown(i
8、nt,KeyEvent)–新按键发生onKeyUp(int,KeyEvent)-按键UponTrackballEvent(MotionEvent)–轨迹球事件onTouchEvent(MotionEvent)–屏幕上移动onFocusChanged(boolean,int,Rect)–Vi
此文档下载收益归作者所有