Button之常用事件

一、简介

1、button介绍

本文介绍了Buttonn的点击事件,触摸事件,获得焦点事件

接口分别为:OnClickListener,OnTouchListener,OnFocusChangeListener

这些事件并不是button才会有,别的控件也会有

2、button类结构

button继承的TextView,用法也几乎一样

二、方法

这个没啥说的,直接看实例吧

三、代码实例

效果图:

代码:

fry.Activity01

 package fry;

 import com.example.buttonDemo1.R;

 import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnTouchListener;
import android.widget.Button; public class Activity01 extends Activity implements OnClickListener,OnTouchListener,OnFocusChangeListener {
private Button btn_one;
private Button btn_two;
int value=1; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity01);
btn_one = (Button) findViewById(R.id.btn_one);
btn_two = (Button) findViewById(R.id.btn_two);
btn_one.setOnClickListener(this);
btn_two.setOnClickListener(this);//触摸监听器
btn_two.setOnTouchListener(this);
btn_two.setOnFocusChangeListener(this);
} @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button btn = (Button) v;
int width = getWindow().getWindowManager().getDefaultDisplay()
.getWidth();
/*
* value等于1表示扩大
* 等于-1表示缩小
*/
if (btn.getWidth() < 100&&value==-1) {
value=1;
} else if (btn.getWidth() >= width&& value==1) {
value=-1;
}
btn.setWidth(btn.getWidth()+(int)(btn.getWidth()*0.1*value));
btn.setHeight(btn.getHeight()+(int)(btn.getHeight()*0.1*value)); } @Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action=event.getAction();//事件类型
if(action==MotionEvent.ACTION_DOWN){//按下
btn_two.setBackgroundResource(R.drawable.button2);
}else if(action==MotionEvent.ACTION_UP){//松开
btn_two.setBackgroundResource(R.drawable.button1);
}
//如果点击事件被处理,就传回true,否则false
//也就是如果传true,事件被处理,onClick就不处理这个点击事件了
return false;
} @Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){//获得焦点
btn_two.setBackgroundResource(R.drawable.button2);
}
else if(!hasFocus){//失去焦点
btn_two.setBackgroundResource(R.drawable.button1);
}
}
}

/buttonDemo1/res/layout/activity01.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/btn_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮一"
></Button> <Button
android:id="@+id/btn_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button1"
></Button> </LinearLayout>

四、易错点

Button之常用事件的更多相关文章

  1. Android开发-之监听button点击事件

    一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加X ...

  2. jQuery常用事件

    1.$(document).ready() $(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典型方式.它和onload具有类似的效果 ...

  3. jQuery常用事件及扩展

    jquery中的常用事件 blur([[data],fn])     --失去焦点触发(鼠标)focus([[data],fn])  --得到焦点触发(鼠标)change([[data],fn]) - ...

  4. 【jQuery】(4)---jQuery常用事件

    [jQuery入门](4)---jQuery常用事件 一.常用事件列表 1.blur() 当失去焦点时触发.包括鼠标点击离开和TAB键离开. 2.change() 当元素获取焦点后,值改变失去焦点事触 ...

  5. jQuery常用事件,each循环,引用当前时间

    jQuery常用事件,each循环,引用当前时间 1.常用事件 click(function(){...}) #点击时触发hover(function(){...}) #鼠标移到时就触发blur(fu ...

  6. vue 的常用事件

    vue 的常用事件 事件处理 1.使用 v-on:xxx 或 @xxx 绑定事件,其中 xxx 是事件名: 2.事件的回调需要配置在 methods 对象中,最终会在 vm 上: 3.methods ...

  7. Android笔记——Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

  8. ios手势操作,四个基本事件与六个常用事件

    基本事件包括begin,canceled,move,ended四项,如果对象的hidden属性为yes,则无效果,hidden属性必须为no;才能使用: -(void)touchesBegan:(NS ...

  9. input 的blur事件之后button的onclick事件不执行解决方案

    最近发现网页程序中有个BUG,就是在input标签输入框中输入完数据后,直接点击“取消” 按钮的时候.出现网页崩死的情况: 经过小主酸菜我,各种方法的尝试后,找到一个初步可以解决的方案,在这里分享给大 ...

随机推荐

  1. Powershell Get Domain User的几种方法

    一.Get-User单用户查询 $User=Get-ADUser -identity wendy -Properties * 二.Get-User多用户循环查询 $export=@() $Users= ...

  2. 你不知道的Javascript(上卷)读书笔记之四 ---- 提升、this

    1. 提升 使用var声明的变量声明和函数的声明(函数表达式不会)会被提升至所在函数作用域顶部 a. 从编译器角度出发 回忆一下, 中关于编译器的内容,引擎会在解释 JavaScript 代码之前首先 ...

  3. bash短路径显示

    修改.bashrc文件vim 打开.bashrc文件,找到如下这行,有两个,都修改一下: PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 将上面 ...

  4. Storm-源码分析-acker (backtype.storm.daemon.acker)

    backtype.storm.daemon.acker 设计的巧妙在于, 不用分别记录和track, stream过程中所有的tuple, 而只需要track root tuple, 而所有中间过程都 ...

  5. js基础练习--控制多组图片切换

    js基础练习题,一个按钮控制两组图片的切换,做这题的时候我忽然想到了将num1.mun2……都存放在一个数组中,根据索引值匹配到对应相应组的图片,这样不管有多少组图片都简单的搞定切换,可惜js基础都没 ...

  6. JDK源代码学习系列05----LinkedList

                                             JDK源代码学习系列05----LinkedList 1.LinkedList简单介绍 LinkedList是基于双向 ...

  7. TI C66x DSP 系统events及其应用 - 5.7(IST)

    当CPU開始处理一个中断(INT4~15)时,它将引用中断服务表(IST).IST是一个获取包括中断服务代码的包的表. IST包括16个连续的获取包.每个中断服务获取包(ISFP)包括最多14条指令( ...

  8. 【Spring MVC】spring mvc中相同的url请求返回不同的结果

    在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码, ...

  9. Windows Live Writer 网易博客配置

    一.去官网下载 Windows Live Write 组件 二.配置,选中其它服务,然后会到如下界面 主要是这里经常不知道选择什么,容易忘记. 下拉框选中metaweblog API 类型,把这个地址 ...

  10. 关于OAuth的state参数的作用

    引用: https://blog.csdn.net/gjb724332682/article/details/54428808 在开发 OAuth认证服务器 的时候,开发者的安全意识不高的话,很可能会 ...