Android应用开发学习笔记之事件处理

作者:刘昊昱 

博客:http://blog.csdn.net/liuhaoyutz

 

Android提供的事件处理机制分为两类:一是基于监听的事件处理;二是基于回调的事件处理。对于基于监听的事件处理,主要的做法是为Android界面组件绑定特定的事件监听器。对于基于回调的事件处理,主要是重写Android组件特定的回调函数或重写Activity的回调函数。

基于监听的事件处理,在前面的文章中我们已经用过,比如为Button设置点击监听器。本文我们主要来看基于回调的事件处理。

下面我们通过一个例子来学习Android程序怎样响应按键事件和触摸屏事件。该程序运行效果如下:

我们只需要看主Activity实现文件,其内容如下:

package com.liuhaoyu;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.Toast;
 
public class MainActivity extends Activity{
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    }
 
         @Override
         publicboolean onTouchEvent(MotionEvent event) {
                   //TODO Auto-generated method stub
                   Toast.makeText(MainActivity.this,"onTouchEvent(): " + "(" + event.getX() + "," +event.getY() + ")", Toast.LENGTH_SHORT).show();
                   if(event.getAction()== MotionEvent.ACTION_MOVE)
                            Toast.makeText(MainActivity.this,"onTouchEvent(): touch move", Toast.LENGTH_SHORT).show();
                   returnsuper.onTouchEvent(event);
         }
 
         @Override
         publicboolean onKeyDown(int keyCode, KeyEvent event) {
                   //TODO Auto-generated method stub
                   Toast.makeText(MainActivity.this,"onKeyDown(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show();
                   returnsuper.onKeyDown(keyCode, event);
         }
 
         @Override
         publicboolean onKeyUp(int keyCode, KeyEvent event) {
                   //TODO Auto-generated method stub
                   Toast.makeText(MainActivity.this,"onKeyUp(): KeyCode = " + keyCode, Toast.LENGTH_SHORT).show();
                   returnsuper.onKeyUp(keyCode, event);
         }
}


这个例子响应按键事件和触摸屏事件。

对于按键事件,我们重写了onKeyDown()和onKeyUp()函数。

对于触摸屏事件,我们重写了onTouchEvent()函数。

基于回调事件处理函数,有一个boolean类型的返回值,这个返回值用来表明该事件处理函数能否完成对该事件的处理,如果能完成,返回值为true,事件就是会继续传递下去。如果不能完成,返回值为false,表明没有完成对事件的处理,事件还会继续传递下去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值