Button之常用事件
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之常用事件的更多相关文章
- Android开发-之监听button点击事件
一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加X ...
- jQuery常用事件
1.$(document).ready() $(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典型方式.它和onload具有类似的效果 ...
- jQuery常用事件及扩展
jquery中的常用事件 blur([[data],fn]) --失去焦点触发(鼠标)focus([[data],fn]) --得到焦点触发(鼠标)change([[data],fn]) - ...
- 【jQuery】(4)---jQuery常用事件
[jQuery入门](4)---jQuery常用事件 一.常用事件列表 1.blur() 当失去焦点时触发.包括鼠标点击离开和TAB键离开. 2.change() 当元素获取焦点后,值改变失去焦点事触 ...
- jQuery常用事件,each循环,引用当前时间
jQuery常用事件,each循环,引用当前时间 1.常用事件 click(function(){...}) #点击时触发hover(function(){...}) #鼠标移到时就触发blur(fu ...
- vue 的常用事件
vue 的常用事件 事件处理 1.使用 v-on:xxx 或 @xxx 绑定事件,其中 xxx 是事件名: 2.事件的回调需要配置在 methods 对象中,最终会在 vm 上: 3.methods ...
- Android笔记——Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- ios手势操作,四个基本事件与六个常用事件
基本事件包括begin,canceled,move,ended四项,如果对象的hidden属性为yes,则无效果,hidden属性必须为no;才能使用: -(void)touchesBegan:(NS ...
- input 的blur事件之后button的onclick事件不执行解决方案
最近发现网页程序中有个BUG,就是在input标签输入框中输入完数据后,直接点击“取消” 按钮的时候.出现网页崩死的情况: 经过小主酸菜我,各种方法的尝试后,找到一个初步可以解决的方案,在这里分享给大 ...
随机推荐
- Java基础语法 - 面向对象 - 类的主方法main方法
主方法是类的入口点,它指定了程序从何处开始,提供对程序流向的控制.Java编译器通过主方法来执行程序. 主方法的语法如下: /* a.主方法是静态的,如果要直接在主方法中调用其它方法,则该方法必须也是 ...
- 查找文件路径find
查找文件路径find 1.按照文件名查找 (1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找 (2)find ...
- 洛谷 P2073 送花
这题其实可以用vector水掉! 定义: 记住要用结构体(c为价格,x为美丽值)! 以c排序. struct Node { int x,c; bool operator < (const &am ...
- 深入Redis内部-Redis 源码讲解(转)
Redis作为 NoSQL 数据库的杰出代表,一直广受关注,其轻量级的敏捷架构,向来有存储中的瑞士军刀之称.下面推荐的一篇文章,从源码的角度讲解了Redis 的整个工作流程,是了解 Redis 流程的 ...
- Python生成器是什么
生成器是 Python 初级开发者最难理解的概念之一,虽被认为是 Python 编程中的高级技能,但在各种项目中可以随处见到生成器的身影,你得去理解它.使用它.甚至爱上它. 提到生成器,总不可避免地要 ...
- struct 模块 把一个类型,如数字,转成固定长度的bytes
该模块可以把一个类型,如数字,转成固定长度的bytes import struct headers=struct.pack('i',132333) print(headers,len(headers) ...
- this的思考
问题:JS中为什么要用this? 回答:因为this采用隐式“传递”一个对象的引用,所以可以将API设计得更加简洁和可复用 问题:JS中的this是什么? 背景:this是在运行时绑定的,this的上 ...
- mysql进阶(一)
本节目录 1.视图 2.存储过程 3.函数 4.事务 5.触发器 6.流程控制语句 1.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用 ...
- webdriver的API
基本API 1.页面刷新 driver.fresh() 2.页面切换 driver.back(). driver.forward() 3.设置窗口大小 driver.set_wind ...
- (转载)undo表空间
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...