Android基础#26:Android事件处理模型二(基于监听接口的事件处理),OnClickListener,OnLongClickListener等_android onlongclicklistener-程序员宅基地

技术标签: onClick  onFocusChange  OnClickListener  OnKeyListener  Android事件  Android开发技术与实践  

内容简介:

正如java中的监听处理模型一样,Android也提供了同样的基于监听接口的事件处理模型。

常用接口如下:


1. OnClickListener接口:
   功能:该接口处理的是点击事件。在触控模式下,是在某个View上按下并抬起的组合动作,而在键盘模式下,是某个View获得焦点后点击确定键或者按下轨迹球事件。
   对应的回调方法:public void onClick(View v)
   说明:需要实现onClick方法,参数v便为事件发生的事件源。

2. OnLongClickListener接口:
   功能:OnLongClickListener接口与之前介绍的OnClickListener接口原理基本相同,只是该接口为View长按事件的捕捉接口,即当长时间按下某个View时触发的事件。
   对应的回调方法:public boolean onLongClick(View v)
   说明:需要实现onLongClick方法。
   参数v:参数v为事件源控件,当长时间按下此控件时才会触发该方法。
   返回值:该方法的返回值为一个boolean类型的变量,当返回true时,表示已经完整地处理了这个事件,并不希望其他的回调方法再次进行处理;当返回 false时,表示并没有完全处理完该事件,更希望其他方法继续对其进行处理。

3. OnFocusChangeListener接口:
   功能:OnFocusChangeListener接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的回调方法。
   对应的回调方法:public void onFocusChange(View v, Boolean hasFocus)
   说明:需要实现onFocusChange方法。
   参数v:参数v便为触发该事件的事件源。
   参数hasFocus:参数hasFocus表示v的新状态,即v是否是获得焦点。

4. OnKeyListener接口:
   功能:OnKeyListener是对手机键盘进行监听的接口,通过对某个View注册该监听,当View获得焦点并有键盘事件时,便会触发该接口中的回调方法。
   对应的回调方法:public boolean onKey(View v, int keyCode, KeyEvent event)
   说明:需要实现onKey方法。
   参数v:参数v为事件的事件源控件。
   参数keyCode:参数keyCode为手机键盘的键盘码。
   参数event:参数event便为键盘事件封装类的对象,其中包含了事件的详细信息,例如发生的事件、事件的类型等。

5. OnTouchListener接口:
   功能:OnTouchListener接口是用来处理手机屏幕事件的监听接口,当为View的范围内触摸按下、抬起或滑动等动作时都会触发该事件。
   对应的回调方法:public boolean onTouch(View v, MotionEvent event)
   说明:需要实现onTouch方法。
   参数v:参数v同样为事件源对象。
   参数event:参数event为事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。

6. OnCreateContextMenuListener接口:
   功能:OnCreateContextMenuListener接口是用来处理上下文菜单显示事件的监听接口。该方法是定义和注册上下文菜单的另一种方式。
   对应的回调方法:public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info)
   说明:需要实现onCreateContextMenu方法。
   参数menu:参数menu为事件的上下文菜单。
   参数v:参数v为事件源View,当该View获得焦点时才可能接收该方法的事件响应。
   参数info:info对象中封装了有关上下文菜单额外的信息,这些信息取决于事件源View。
   该方法会在某个View中显示上下文菜单时被调用,开发人员可以通过实现该方法来处理上下文菜单显示时的一些操作。其使用方法与前面介绍的各个监听接口没有任何区别。


对于事件处理,可以参考另外一篇博文:
链接:Android基础#25:Android事件处理模型一(基于回调机制的事件处理),onKeyDown,onKeyUp

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liranke/article/details/6855617

智能推荐

scratch2.0制作母亲节礼物——电子烟花送给母亲_scratch母亲节作品-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏9次。首先,我们先来看一下效果_scratch母亲节作品

投票系统_开源投票系统 github-程序员宅基地

文章浏览阅读686次。package mainimport ( "awesomeProject1/src/github.com/hyperledger/fabric/core/chaincode/shim" "awesomeProject1/src/github.com/hyperledger/fabric/protos/peer" "bytes" "encoding/json" "..._开源投票系统 github

tensorboard一些简单常用的代码_tensorboard代码-程序员宅基地

文章浏览阅读3.9k次。需要再Terminal里面输入tensorboard --logdir logs才能打开Tensorboard# tensorboard --logdir=logs --port=6007 是将端口号改为了6007#一般用到一下几个指令:# 一、打开图片显示图片# writer.add_images("input",imgs,step) 第一个是标签,第二个是图像,注意图像必须是numpy或者tentor类型的,而且必须是通道数在前面,比如RGB三通道的就要是3*w*h#如果通道数在后面,则._tensorboard代码

Java的reverseOrder_reverse是什么意思及其用法-程序员宅基地

文章浏览阅读1.2k次。reverse的音标英 [rɪˈvɜːs]美 [rɪˈvɜːrs]reverse的用法v. 颠倒;彻底转变;使完全相反;撤销,废除(决定、法律等);使反转;使次序颠倒n. 相反的情况(或事物);后面;背面;反面;倒挡adj. 相反的;反面的;反向的;背面的;后面的第三人称单数: reverses 复数: reverses 现在分词: reversing 过去式: reversed 过去分词: re..._reverseorder

java创建一个指定的日期_创建指定日期java Date对象-程序员宅基地

文章浏览阅读1w次。import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Demo {public static void main(String[] args) throws ParseException {//获..._创建一个指定时间用什么语句

Sublime Text3轻量型跨平台C/C++开发环境(上) 安装使用篇_folder_exclude_patterns-程序员宅基地

文章浏览阅读1.6k次。Sublime Text 2和3的对比相比于2,Sublime Text 3就秒启动一项,就压倒性地胜利了。因此在之后的叙述中都以Sublime Text 3为主角。并且3一直在不断的完善更新,具体的差异可参看Sublime Blog.简单的说:ST3支持在项目目录里面寻找变量 提供了对标签页更好地支持(更多的命令和快捷键) 加快了程序运行的速度 更新了API,使用Pytho..._folder_exclude_patterns

随便推点

go mysql slave_go-mysql: a powerful mysql toolset with Go-程序员宅基地

文章浏览阅读60次。go-mysqlA pure go library to handle MySQL network protocol and replication.ReplicationReplication package handles MySQL replication protocol like python-mysql-replication.You can use it as a MySQL sla..._replication.newbinlogsyncer

C/C++头文件一览[转]_c语言头文件换成c++头文件-程序员宅基地

文章浏览阅读236次。C/C++头文件一览 C、传统 C++#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include

php7如何读取二进制数据,在PHP中读取二进制文件-程序员宅基地

文章浏览阅读307次。在PHP中读取二进制文件2012-10-30[1715]technologyphp次阅读很多时候,数据并不是用文本的方式保存的,这就需要将二进制数据读取出来,还原成我们需要的格式。PHP在二进制处理方面也提供了强大的支持。任务下面以读取并分析一个PNG图像的文件头为例,讲解如何使用PHP读取和分析二进制文件。涉及函数PNG格式简介为了完成任务,下面简单介绍一下PNG文件格式。PNG是一种无损压缩的..._php 查找字符串中的二进制

kettle报错couldn't convert string [1970-01-01 00:00:00] to a date using format [yyyy/MM/dd HH:mm:ss.SS_kettle导出date报错-程序员宅基地

文章浏览阅读1.4w次。kettle报错couldn't convert string [1970-01-01 00:00:00] to a date using format [yyyy/MM/dd HH:mm:ss.SSS]1.报错如下2019/01/08 12:04:18 - 替换NULL值.0 - ERROR (version 8.1.0.0-365, build 8.1.0.0-365 from 2018-..._kettle导出date报错

计算机串口通信的作用,浅谈硬件串口通信基础概念-程序员宅基地

文章浏览阅读922次。串口通信(Serial Communication),是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。(1)接口标准串口通信的接口标准有很多,有 RS-232C、RS-232、RS-422A、RS-485 等。常用的就是 RS-232 和 RS-485。RS-232 其实是 R..._多串口电脑有什么用途

AndroidStudio使用过程中遇到的bug(持续更新)_run configuration app is not supported in the curr-程序员宅基地

文章浏览阅读2.5w次,点赞7次,收藏18次。转载请注明出处:http://blog.csdn.net/forevercbb/article/details/51037833 由于Google不再支持Eclipse之后,转向Google的亲儿子——AndroidStudio是必然的,但是AndroidStudio的配置以及使用都比Eclipse复杂,不熟悉的情况下经常会遇到一些莫名其妙的问题,导致应用无法正常编译。代码出现的bug可以根据错_run configuration app is not supported in the current project. cannot obtain

推荐文章

热门文章

相关标签