一般只需要处理按钮的点击事件就可以,但想让一个按钮处理多个事件,就得同时监听多个方法。

OnClickListener  点击事件

OnLongClickListener 长按事件

OnTouchListener  触摸事件

同事监听三个事件,只有 OnTouchListener  会被触发。

 package demo.button;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.Toast; public class TestButtonActivity extends Activity
{
Button test = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); test = (Button) findViewById(R.id.test); test.setOnClickListener(new MyOnClickListener());
test.setOnLongClickListener(new MyOnLongClickListener());
test.setOnTouchListener(new MyOnTouchListener());
} class MyOnClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
Toast.makeText(getApplicationContext(), "单击事件", Toast.LENGTH_SHORT).show();
} } class MyOnLongClickListener implements OnLongClickListener
{ @Override
public boolean onLongClick(View v)
{
Toast.makeText(getApplicationContext(), "长按事件", Toast.LENGTH_SHORT).show();
return true;
} } class MyOnTouchListener implements OnTouchListener
{ @Override
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{ Toast.makeText(getApplicationContext(), "按下按钮事件", Toast.LENGTH_SHORT).show();
} if (event.getAction() == MotionEvent.ACTION_UP)
{
Toast.makeText(getApplicationContext(), "弹起按钮事件", Toast.LENGTH_SHORT).show(); } //返回true 表示事件处理完毕,会中断系统对该事件的处理。false 系统会同时处理对应的事件
return true;
}
}
}

Android Button事件处理的更多相关文章

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

    基于监听的事件处理机制 前言: 我们开发的app更多的时候是需要与用户的交互----即对用户的操作进行响应 这就涉及到了android的事件处理机制; android给我们提供了两套功能强大的处理机制 ...

  2. Android的事件处理

    1 android事件处理概述 不论是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理用户的动作-------也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理.andr ...

  3. Android Button的基本使用

    title: Android Button的基本使用 tags: Button,按钮 --- Button介绍: Button(按钮)继承自TextView,在Android开发中,Button是常用 ...

  4. android Button 切换背景,实现动态按钮和按钮颜色渐变

        android Button 切换背景,实现动态按钮和按钮颜色渐变 一.添加android 背景筛选器selector实现按钮背景改变     1.右键单击项目->new->Oth ...

  5. Android热插拔事件处理详解

    一.Android热插拔事件处理流程图 Android热插拔事件处理流程如下图所示: 二.组成 1. NetlinkManager:        全称是NetlinkManager.cpp位于And ...

  6. android 按钮特效 波纹 Android button effects ripple

    android 按钮特效 波纹 Android button effects ripple 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E- ...

  7. 【Android】事件处理系统

    linux输入子系统 Android是linux内核的,所以它的事件处理系统也在linux的基础上完成的. Linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/ ...

  8. 我的Android进阶之旅------>android Button上面的英文字符串自动大写的问题解决

    今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示: 图1:Button 图2:TextView 这个Butt ...

  9. Android Button Maker(在线生成android shape xml文件的工具),真方便!

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/scry5566/article/details/25379275        直接上地址:http ...

随机推荐

  1. 基础篇:4.2)规范化:3d软件工程图纸用模板

    本章目的:分享一些国标标准模板,方便作图时使用 这篇博文的内容作者会定时的更新 1.工程图模板 drawing template 定义 三维机械设计软件中的一种文件类型.通过标准化定制和使用该文件,可 ...

  2. BZOJ - 3295 三维偏序 空间转换

    题意:动态逆序对,共m次删除操作,求每次操作前的逆序对个数 删除操作转换为添加操作,首先对时间a进行简单排序 然后用cdq分治处理b维,树状数组处理c维 此时需要求的是对于某有序组\((a,b,c)\ ...

  3. AHB协议

    AHB2 支持多个Bus Master,例如有三个Master,有四个slave,但是同时只有一个Mater可以拿到Bus的访问权.所以,总线的使用权就需要Master去申请,也就需要一个仲裁器(Ar ...

  4. ABP与多租户

    ABP简介 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程 ...

  5. 二级C语言真题笔记

    二级C语言真题笔记 1. 知识重点:数据类型.循环.数组.函数.指针.结构体与共同体 2. 求程序的运行结果 #include <stdio.h> main() {     short i ...

  6. Oracle使用总结

    1. 在ORACLE中Service Name即为数据库名称: 2. 在做删除操作时,需要加Commit进行操作提交: 3. 使用sqlldr将数据进行批量导入到ORACLE中: 3.1  Sqlld ...

  7. 卸载Windows,安装纯Linux

    操作步骤 下载安装一键GHOST优盘版 参考帮助文档,安装U盘启动 重启电脑,F12进入模式选择界面,选择USB device 选择DOS 工具 进入Disk Genius 删除掉除主分区(0)外的其 ...

  8. java有序map

    我们知道TreeMap的key是有顺序的,是自然顺序,也可以指定比较函数. 但TreeMap默认不是按插入的顺序.  为了让Map按照插入顺序显示,可以使用LinkedHashMap吧. 它内部有一个 ...

  9. TortoiseGit学习系列之Git和TortoiseGit的区别

    不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git.

  10. 有意思的shader案例

    屏幕水波效果 https://blog.csdn.net/puppet_master/article/details/52975666