安卓事件处理
来源:互联网 发布:利用淘宝双十一赚钱 编辑:程序博客网 时间:2024/05/16 00:38
一、实现事件监听可以有5种方式:
1.内部类形式:将事件监听器类定义成当前类的内部类
class xxActivity extends Activity
{
// 设置事件监听器
view.serOnXXListener(new xxListener ());
// 定义事件监听器内部类
class xxListener implements OnXXListener{
public void onXX(View v)
{
// to do someting
}
}
}
}
2.外部类形式:将事件监听器类定义成一个外部类
class xxListener implements OnXXListener{
public void onXX(View v)
{
// to do someting
}
}
}
class xxActivity extends Activity {
// 设置事件监听器
view.serOnXXListener(new xxListener ());
}
3.Activity本身作为事件监听器类
class xxActivity extends Activity implements OnXXListener {
// 设置事件监听器
view.serOnXXListener(this);
public void onXX(View v)
{
// to do someting
}
}
}
4.匿名内部类形式
class xxActivity extends Activity {
// 设置事件监听器
view.serOnXXListener(new onXXListener()
{
public void onXX(View v)
{
// to do someting
}
}
}
);
}
5.直接在XML布局文件内绑定
xml布局文件
....
android:onClick="clickHandle"
....
Activity文件
class xxActivity extends Activity {
public void clickHandle(View v)
{
// to do something
}
}
}
二、基于回调的事件处理机制
public class myButton extends Button
{
//省略构造函数
//重写Button某个回调事件
//重写Button某个回调事件
public boolean onKeyDown(int keyCode,KeyEvent event)
{
super.onKeyDown(keyCOde,event);
return true;
}
}
}
如果事件处理的回调方法返回true,表示事件已经可以就此终结,不会再向外传播,反之继续传播(比如至Activity)
与监听机制正好相反,回调机制中,其事件源与事件执行是一体的,没有分离。
三、Handler消息传递机制
在新线程中发送消息
在主线程中处理消息
安卓不允许Activity新启动的线程访问其本身的组件,该机制用以解决该问题
Handler myhandler=new Handler ()
{
public void handleMessage(Message msg)
{
if(msg.what==xxx)
// to do someting
}
}
new Timer().schedule(new TimeTask()
{
public void run()
{
Message msg =new Message();
msg.what=xxx;
myhandler.sendMessage (msg);
}
},0,800);
0 0
- 安卓事件处理
- 安卓事件处理
- 安卓事件处理2
- 安卓事件处理机制
- 安卓的事件处理
- 安卓基础学习_Android事件处理
- 安卓应用的事件处理
- 安卓的事件处理机制
- 安卓事件传递及处理
- 安卓按键事件分发处理机制
- 安卓的双击事件处理
- 安卓开发(3):事件处理
- 安卓事件处理1之监听器盘点
- 安卓触摸事件处理机制的简单介绍
- 安卓 基于监听接口的事件处理
- 安卓开发基础--打招呼(事件的简单处理)
- 安卓基于监听事件处理(一)
- 安卓基于回调的事件处理(一)
- 安卓界面编程
- 【BZOJ 1486】 [HNOI2009]最小圈
- Java之美[从菜鸟到高手演练]之Linux下单节点安装Hadoop
- 三、对SERVER内的元素信息进行说明
- 关于验证码识别的两种方案
- 安卓事件处理
- ios微秀音乐控制案例
- 一个有意思的拼接数组
- Linux定时器
- Nginx如何解决事件过期问题
- Unity3d GUI与NGUI
- Informatica&DAC
- Java Notes-8
- Quick 3.3中display.newColorLayer的错误