• 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,表明没有完成对事件的处理,事件还会继续传递下去。

  • 相关阅读:
    将"089,0760,009"变为 89,760,9
    单向循环链表
    双链表复习
    【C语言】scanf()输入浮点型数据
    【C语言】一元二次方程(求实根和虚根)
    输入一个三位正整数,输出百位数,十位数,个位数
    输入身份证号,输出出生日期
    比较四个数的大小
    比较三个数的大小
    比较两个数的大小
  • 原文地址:https://www.cnblogs.com/james1207/p/3263055.html
Copyright © 2020-2023  润新知