`
iaiai
  • 浏览: 2196880 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 事件监听

阅读更多
事件就是用户与UI界面的交互时所触发的操作。比如点击某一个按钮,会触发一个事件等

1、最长用的按钮事件:OnClickListener
mybutton = (Button)findViewById(R.id.mybutton);  
mybutton.setOnClickListener(new Button.OnClickListener()  {
      @Override  
      public void onClick(View arg0) {  
            // TODO Auto-generated method stub  
            ShowMessage("点击了Button按钮");  
      }  
});  


2、我们还可以自定义KeyEvent,比如
public boolean onKeyDown(int keyCode, KeyEvent event)  {  
      /** 
       * 这里构建KeyEvent对象,功能为返回键的功能 
       * 即我们按任意键都是返回键功能 
      */  
      KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);  
      return super.onKeyDown(keyCode, event);  
}  


3、手机按键的事件处理
Boolean onKeyDown(int keyCode, KeyEvent event):相应按键按下
Boolean onKeyUp(int keyCode, KeyEvent event):相应按键释放
Boolean onKeyMultiple():相应按键重复点击
Boolean onTouchEvent(MotionEvent event):相应触屏事件
package com.iaiai.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class EventTest01 extends Activity {
	/**
	 * 注意,要重写onKeyDown,onKeyUp,onTouchEvent方法
	 */
	private Button mybutton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mybutton = (Button)findViewById(R.id.mybutton);
        mybutton.setOnClickListener(new Button.OnClickListener()
        {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				ShowMessage("点击了Button按钮");
			}

        });
        
    }
    /**按键按下触发的事件*/
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
    	switch(keyCode)
    	{
    	case KeyEvent.KEYCODE_DPAD_CENTER:
    		ShowMessage("按下:中键");break;
    	case KeyEvent.KEYCODE_DPAD_UP:
    		ShowMessage("按下:上方向键");break;
    	case KeyEvent.KEYCODE_DPAD_DOWN:
    		ShowMessage("按下:下方向键");break;
    	case KeyEvent.KEYCODE_DPAD_LEFT:
    		ShowMessage("按下:左方向键");break;
    	case KeyEvent.KEYCODE_DPAD_RIGHT:
    		ShowMessage("按下:右方向键");break;
    	}
    	return super.onKeyDown(keyCode, event);
    }
    
    /**按键弹起所触发的事件*/
    public boolean onKeyUp(int keyCode, KeyEvent event)
    {
    	switch(keyCode)
    	{
    	case KeyEvent.KEYCODE_DPAD_CENTER:
    		ShowMessage("弹起:中键");
    		break;
    	case KeyEvent.KEYCODE_DPAD_DOWN:
    		ShowMessage("弹起:下方向键");
    		break;
    	case KeyEvent.KEYCODE_DPAD_UP:
    		ShowMessage("弹起:上方向键");
    		break;
    	case KeyEvent.KEYCODE_DPAD_LEFT:
    		ShowMessage("弹起:左方向键");
    		break;
    	case KeyEvent.KEYCODE_DPAD_RIGHT:
    		ShowMessage("弹起:右方向键");
    		break;
    	}
    	return super.onKeyUp(keyCode, event);
    }
    
   /**按键重复点击事件*/
    public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
    {
    	return onKeyMultiple(keyCode, repeatCount, event);
    }
    
    /**触屏事件*/
    public boolean onTouchEvent(MotionEvent event)
    {
    	int action = event.getAction();
    	if(action ==  MotionEvent.ACTION_CANCEL||action == MotionEvent.ACTION_DOWN||action == MotionEvent.ACTION_MOVE)
    	{
    		return false;
    	}
    	//得到触点的位置
    	String x = String.valueOf(event.getX());
    	String y = String.valueOf(event.getX());
    	
    	ShowMessage("触点坐标:(" + x + "," + y +")");
    	return super.onTouchEvent(event);
    }
    
    /**显示触发事件的信息*/
    public void ShowMessage(String str)
    {
    	Toast toast = Toast.makeText(this, str, Toast.LENGTH_SHORT);
    	toast.show();
    }
}


运行结果如下:





  • 大小: 23.9 KB
  • 大小: 23.3 KB
  • 大小: 80.8 KB
  • 大小: 81.4 KB
  • 大小: 74.1 KB
  • 大小: 76.6 KB
分享到:
评论

相关推荐

    android 事件监听机制

    本文将深入探讨Android事件监听的核心概念、工作原理以及如何在实际项目中应用,以控制如飞机位置这样的动态元素。 1. **事件处理系统概述** Android事件处理系统由三部分组成:事件源(Event Source)、事件...

    Android 事件监听方法的创建和具体实现.rar

    本Android源码演示事件监听方法的创建和具体实现,演示程序中,用户点击不同的按钮,演示具体的事件监听功能:  public void onClick(View v) {//实现事件监听方法   if(v == buttons[0]){//按下第一个按钮时   ...

    android全局事件监听器

    在Android开发中,全局事件监听器是一种非常实用的设计模式,它允许开发者在整个应用程序范围内监听特定的事件,而无需在每个需要响应的类中都添加监听代码。标题中的"android全局事件监听器"指的是一个实现此类功能...

    android事件监听总结

    PPT是详细讲述Android界面事件的,原文档是实现的一个鼠标监听一个EditText监听。本文档比较适合于初学者但是对于android老手也具有一定的借鉴作用。尤其是最后的在TextView中对鼠标进行监听和对EditText进行监听。

    Android事件监听的例子

    首先触发ACTIVITY的dispatchTouchEvent 然后触发ACTIVITY的onUserInteraction 然后触发LAYOUT的dispatchTouchEvent 然后触发LAYOUT的onInterceptTouchEvent

    android 后台监听按键事件方法及demo

    android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo

    Android在Fragment中实现监听触摸事件

    然后,我们需要在Fragment中维护一个监听器列表,用于存储所有的触摸事件监听器。最后,我们需要在Fragment中实现dispatchTouchEvent方法,该方法将触摸事件分发给每个监听器。 在使用时,我们需要在Fragment中初始...

    Android代码(事件监听).zip

    本资料包"Android代码(事件监听).zip"包含了一个名为"Pro04(事件监听)"的项目,很可能是关于Android事件监听的一个实践案例或教程。 在Android中,事件监听主要通过两种方式实现:一是使用匿名内部类,二是使用...

    android Button监听事件的几种类型

    本篇文章将深入探讨Android Button常用的监听事件类型。 1. **OnClickListener**:这是最基础的按钮监听事件,用于处理单击事件。当用户点击Button时,会触发定义在OnClickListener中的onClick()方法。你可以这样...

    android 外部类作为事件监听器类

    在Android开发中,事件监听器(Event Listeners)是实现用户交互和响应各种事件的关键机制。标题提到的“android 外部类作为事件监听器类”是指将一个非匿名类(外部类)作为事件处理的对象,这在某些情况下可能是...

    Android 监听百度地图缩放事件

    ### Android监听百度地图缩放事件知识点详解 #### 一、概述 在开发基于地理位置的应用时,经常需要使用地图服务来展示位置信息或者提供路径规划等功能。百度地图作为一款功能强大的地图服务工具,在Android开发中...

    各种Android Dialog创建及其监听事件实现

    查阅JavaDoc API文档 读者可根据JavaDoc API文档来了解如何实现单击item选项监听事件 如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通...

    android事件分析

    Android事件监听器有两种模式:一是实现特定的接口,如View.OnClickListener,另一种是使用匿名内部类或 lambda 表达式。例如,设置按钮点击事件可以这样写: ```java button.setOnClickListener(new View....

    android监听返回按钮事件的方法

    在Android开发中,监听返回按钮事件是一个常见的需求,特别是在用户交互设计中,有时需要自定义返回按钮的行为,比如弹出确认对话框防止用户误操作。本文将详细讲解如何在Android应用中实现返回按钮事件的监听。 ...

    Android中Preference的使用以及监听事件分析

    本文将深入探讨Preference的使用方法及其事件监听机制。 一、Preference的种类 Preference家族包括多种类型,如CheckBoxPreference(复选框)、SwitchPreference(开关按钮)、EditTextPreference(文本输入框)、...

    Android 匿名内部类作为事件监听类

    在Android开发中,匿名内部类是一种常见的编程技巧,它允许我们快速实现事件监听功能,而无需定义单独的类。本文将深入探讨如何使用匿名内部类作为事件监听类,以及其在Android开发中的应用。 首先,我们需要理解...

    Android监听软键盘弹出和收起事件

    监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含键盘是否弹出(isShow)、键盘高度(keyboardHeight)、屏幕可用高度(screenHeight)、屏幕...

    android监听手机app启动

    标题"android监听手机app启动"所指的就是这一功能,即在Android程序中捕获其他应用程序的启动事件。描述中提到,API 20之前和之后的方法有所不同,因为Android系统在不同版本中对权限和隐私保护进行了调整。 在API ...

    Android onKeyDown监听返回键无效的解决办法

    总结来说,正确处理Android中返回键的监听需要开发者对Activity生命周期中的事件处理方法有一个清晰的认识,同时了解并正确使用onKeyDown()、dispatchKeyEvent()和onBackPressed()这三个关键的方法。对于特殊情况,...

    android监听软键盘状态

    本篇文章将深入探讨如何在Android中监听软键盘的状态。 首先,我们需要了解Android系统中的软键盘是如何工作的。当用户在EditText等输入框中点击时,系统会自动弹出软键盘。然而,Android SDK并没有提供直接的方法...

Global site tag (gtag.js) - Google Analytics