Android 开发事件响应之基于监听的事件响应

Android 开发事件响应之基于监听的事件响应

本文将介绍Android 操作系统如何通过监听来实现对事件的响应。

  • Android 开发事件响应之基于监听的事件响应

      • 背景介绍
      • Android 开发事件响应类型
      • 内部类
      • 匿名内部类
      • 外部类
      • 直接绑定标签
      • 总结

背景介绍

对于任何可视化开发来说,都会涉及到对控件的响应。我们通过举例:实现对Button 按钮的点击来讲解Android 里面对事件相应的办法。

Android 开发事件响应类型

在Android 开发中,有两种方式可以对事件作出响应,分别是:

- 基于监听的事件处理

- 基于回调的事件处理

在本文,我们重点分析基于基于监听的事件处理,主要有五种实现方式:

- 内部类

- 内部匿名类

- 外部类

- 直接绑定标签

- Activity 本身作为事件监听标签

我个人对第五种方式无感,所以在这里我不做详细的介绍了。

内部类

内部类是我们最为常用的方法,首先需要使用setOnClickListener 来绑定处理响应消息的类:

 // 内部类
 button2.setOnClickListener(new MyOnClickListener());

然后在你设计的Activity中,建立一个内部类:

public class MyOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v){
            Toast.makeText(getApplicationContext(), "内部类",          Toast.LENGTH_SHORT).show();
        }
    }

个人认为内部类是首推的方法,因为你可以设计一个内部类,接受所有button 响应的消息。

匿名内部类

下面是一个匿名内部类的例子:

// 内部匿名类
button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
          Toast.makeText(getApplicationContext(), "内部匿名类", Toast.LENGTH_SHORT).show();
    }
});

外部类

外部类,通俗来说就是新建立一个.java文件来编写对Button 点击事件的响应,下面是一个例子,OuterClass 是我编写的需要响应Button 事件的类:

import android.app.Activity;
import android.view.View;
import android.widget.Toast;

/**
 * Created by zhi on 2015/4/24.
 */
public class OuterClass implements View.OnClickListener{
    private Activity act;
    OuterClass(Activity activity){
        act = activity;
    }
    @Override
    public void onClick(View v){
        Toast.makeText(act,"外部类", Toast.LENGTH_SHORT).show();
    }
}

因为Toast 需要一个Activity 参数,所以构建这个类的时候需要设置这个变量。

并且在调用时,将参数传递过去:

 // 外部类
    button3.setOnClickListener(new OuterClass(this));

直接绑定标签

直接绑定标签,是指在xml 文件中,做设置,如下面的例子:

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button4"
        android:id="@+id/button4"
        android:layout_below="@+id/button3"
        android:layout_alignStart="@+id/button3"
        android:onClick="clickButton"/>

在布局文件中,有onClick标签,制定该button 绑定的函数。

提示: 这里“clickButton” 是要处理消息的函数名,不需要加括号

在.java 文件中,编写clickButton 方法:

// 直接绑定
public void clickButton(View source){
    Toast.makeText(getApplicationContext(),"绑定标签", Toast.LENGTH_SHORT).show();
    }

提示:这里需要注意,函数的名字可以随意命名,但是参数一定要符合(View source) 这种形式,不然程序会直接崩溃。

总结

本文主要是介绍Android 操作系统如何去响应事件,本文主要讲解的是通过监听的方式。

时间: 2024-10-20 22:09:07

Android 开发事件响应之基于监听的事件响应的相关文章

Android开发之使用BroadcastReceiver实时监听电量(源代码分享)

Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的.我们可以动态注册这个类的一个实例通过Context.registerReceiver()方法或者静态注册,通过<Receiver>标记在androidmanifest . xml.注意:如果我们注册一个接收器在Activity.onResume()实现,我们应该注销Activity在Activity生命周期的onPause方法中.(这将减少不必要的系统开销).切记不能注销Activity

(七)android开发中两种方式监听短信的原理和实现

一.监听短信的两种方式的简介 Android程序开发中,有两种方式监听短信内容:一.接收系统的短信广播:二.应用观察者模式,监听短信数据库. 第一种方式接收系统的短信广播: A.这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onReceive()方法. B.并且这个广播是有序广播,如果当别的程序先读取到了这个广播,然后拦截掉了个这个广播,你将接收不到.当然我们可以通过设置priority的数值,其实有时是不管用的,现在在一些定制的

Android的事件处理机制详解(二)-----基于监听的事件处理机制

基于监听的事件处理机制 前言: 我们开发的app更多的时候是需要与用户的交互----即对用户的操作进行响应 这就涉及到了android的事件处理机制; android给我们提供了两套功能强大的处理机制: ①基于监听的事件处理机制 ②基于回调的事件处理机制 在这一节中,我们会先介绍一下基于监听的事件处理机制 好了,废话不多说! 我们要先了解一下监听处理机制的模型 监听的处理模型: 处理模型图: 文字表述: 事件监听机制中由事件源,事件,事件监听器三类对象组成 处理流程: step 1:为某个事件源

【Android】基于监听的事件处理和基于回调的事件处理、两者的区别

原文:http://blog.csdn.net/zhangzeyuaaa/article/details/40820435 凡是涉及到UI编程,就必然需要进行各种事件处理. Android提供了两套事件处理机制: 1.基于监听的事件处理. 2.基于回调的事件处理. 基于监听的事件处理就是在android的组件上绑定特定的监听器,而基于回调的事件处理就是重写UI组件或者Activity的回调方法. 基于回调的事件处理用于处理一些具有通用性的事件,基于监听的事件处理用于处理与具体业务相关的事件. 事

Android基础入门教程——3.1 基于监听的事件处理机制

Android基础入门教程--3.1.1 基于监听的事件处理机制 标签(空格分隔): Android基础入门教程 本节引言: 第二章我们学习的是Android的UI控件,我们可以利用这些控件构成一个精美的界面,但是仅仅是界面而已:下一步就要开始学习逻辑与业务实现了,本章节讲解的是Android的事件处理机制!何为事件处理机制?举个 简单的例子,比如点击一个按钮,我们向服务器发送登陆请求!当然,Android中的事件处理机制不止这一种, 比如屏幕发生选择,我们点击了屏幕上某个区域-简单点说,事件处

Android中Button的五种监听事件

简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activity本身作为事件监听器,实现onClickListener5.外部类作为监听器 ButtonListenerActivity.class public class ButtonListenerActivity extends AppCompatActivity implements View.On

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

> 在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局.当然,凡事都有例外,FMRadio应用程序中则使用了View布局结构(可能是该应用程序是marvel公司提供的,如果由google公司做,那可说不准).归根到底,Preference布局结构和View的布局结构本质上还是大同小异,Preference的优点在于布局界面的可控性和高效率以及可存储值的简洁性(每个

Android EditText截获与监听输入事件

Android EditText截获与监听输入事件共有2种方法: 1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件. edittext.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { textview.setText(edittext.getText()); return fal

Android监听底层事件的机制总结

研究了一上午的Android监听底层事件的机制,总结如下: 内核驱动监听硬件设备的状态和行为,通过uevent机制发送事件给用户空间: 用户空间通过UeventObserver来监听来自内核的uevent,进行处理. 内核空间和用户空间的通信使用了netlink机制. 参考的文章有: Android使用UeventObserver: http://blog.csdn.net/lushengchu_luis/article/details/9466405 http://blog.csdn.net/