热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Button之常用事件

Button之常用事件一、简介1、button介绍本文介绍了Buttonn的点击事件,触摸事件,获得焦点事件接口分别为:OnClickListener,OnTouchListener,OnFocus

Button之常用事件

一、简介

1、button介绍

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

 接口分别为:OnClickListener,OnTouchListener,OnFocusChangeListener

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

2、button类结构

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

 

二、方法

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

 

三、代码实例

效果图:

 

 

 

代码:

fry.Activity01

 1 package fry;
2
3 import com.example.buttonDemo1.R;
4
5 import android.app.Activity;
6 import android.os.Bundle;
7 import android.view.MotionEvent;
8 import android.view.View;
9 import android.view.View.OnClickListener;
10 import android.view.View.OnFocusChangeListener;
11 import android.view.View.OnTouchListener;
12 import android.widget.Button;
13
14 public class Activity01 extends Activity implements OnClickListener,OnTouchListener,OnFocusChangeListener {
15 private Button btn_one;
16 private Button btn_two;
17 int value=1;
18
19
20 @Override
21 protected void onCreate(Bundle savedInstanceState) {
22 // TODO Auto-generated method stub
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity01);
25 btn_One= (Button) findViewById(R.id.btn_one);
26 btn_two = (Button) findViewById(R.id.btn_two);
27 btn_one.setOnClickListener(this);
28 btn_two.setOnClickListener(this);//触摸监听器
29 btn_two.setOnTouchListener(this);
30 btn_two.setOnFocusChangeListener(this);
31 }
32
33 @Override
34 public void onClick(View v) {
35 // TODO Auto-generated method stub
36 Button btn = (Button) v;
37 int width = getWindow().getWindowManager().getDefaultDisplay()
38 .getWidth();
39 /*
40 * value等于1表示扩大
41 * 等于-1表示缩小
42 */
43 if (btn.getWidth() <100&&value==-1) {
44 value=1;
45 } else if (btn.getWidth() >= width&& value==1) {
46 value=-1;
47 }
48 btn.setWidth(btn.getWidth()+(int)(btn.getWidth()*0.1*value));
49 btn.setHeight(btn.getHeight()+(int)(btn.getHeight()*0.1*value));
50
51 }
52
53 @Override
54 public boolean onTouch(View v, MotionEvent event) {
55 // TODO Auto-generated method stub
56 int action=event.getAction();//事件类型
57 if(action==MotionEvent.ACTION_DOWN){//按下
58 btn_two.setBackgroundResource(R.drawable.button2);
59 }else if(action==MotionEvent.ACTION_UP){//松开
60 btn_two.setBackgroundResource(R.drawable.button1);
61 }
62 //如果点击事件被处理,就传回true,否则false
63 //也就是如果传true,事件被处理,onClick就不处理这个点击事件了
64 return false;
65 }
66
67 @Override
68 public void onFocusChange(View v, boolean hasFocus) {
69 // TODO Auto-generated method stub
70 if(hasFocus){//获得焦点
71 btn_two.setBackgroundResource(R.drawable.button2);
72 }
73 else if(!hasFocus){//失去焦点
74 btn_two.setBackgroundResource(R.drawable.button1);
75 }
76 }
77 }

/buttonDemo1/res/layout/activity01.xml

 1 xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <Button
8 android:id="@+id/btn_one"
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"
11 android:text="按钮一"
12 >Button>
13
14 <Button
15 android:id="@+id/btn_two"
16 android:layout_width="wrap_content"
17 android:layout_height="wrap_content"
18 android:background="@drawable/button1"
19 >Button>
20
21 LinearLayout>

 

 

 

四、易错点

 


推荐阅读
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 标题: ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
author-avatar
几杯茶轶事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有