Android开发之Button事件实现与监听方法总结


本文实例总结了Android开发之Button事件实现与监听方法。分享给大家供大家参考,具体如下:

先来介绍Button事件实现的两种方法

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="@string/hello"
 />
<Button
 android:id="@+id/myButton1"
 android:text=" 按钮1 "
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 />
<Button
 android:id="@+id/myButton2"
 android:text=" 按钮2 "
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 />
</LinearLayout>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="hello">Hello World, ButtonDemoActivity!</string>
 <string name="app_name">ButtonDemo</string>
</resources>

第一种:

ButtonDemoActivity.java:

package com.android.ButtonDemo.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class ButtonDemoActivity extends Activity {
 Button myButton1,myButton2;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  myButton1=(Button)findViewById(R.id.myButton1);
  myButton2=(Button)findViewById(R.id.myButton2);
  //使用匿名类注册Button事件
  myButton1.setOnClickListener(new OnClickListener()
  {
   public void onClick(View v)
   {
    Toast.makeText(ButtonDemoActivity.this, "你点击了按钮1",Toast.LENGTH_LONG).show();
   }
  });
  myButton2.setOnClickListener(new OnClickListener()
  {
   public void onClick(View v)
   {
    Toast.makeText(ButtonDemoActivity.this, "你点击了按钮2",Toast.LENGTH_LONG).show();
   }
  });
 }
}

第二种:

ButtonDemoActivity.java:

package com.android.ButtonDemo.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class ButtonDemoActivity extends Activity {
 Button myButton1,myButton2;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  myButton1=(Button)findViewById(R.id.myButton1);
  myButton2=(Button)findViewById(R.id.myButton2);
  myButton1.setOnClickListener(new ButtonClick());
  myButton2.setOnClickListener(new ButtonClick());
 }
 //创建一个类,来响应OnClickListener
 class ButtonClick implements OnClickListener
 {
  public void onClick(View v)
  {
   switch (v.getId()) {
   case R.id.myButton1:
    Toast.makeText(ButtonDemoActivity.this, "你点击了按钮1",Toast.LENGTH_LONG).show();
    break;
   case R.id.myButton2:
    Toast.makeText(ButtonDemoActivity.this, "你点击了按钮2",Toast.LENGTH_LONG).show();
    break;
   default:
    break;
   }
  }
 }
}

再来说说Button监听方法

android button控件目前主要有如下几种监听方式:

一个button控件对应一个监听:

Button buttontest;
buttontest = (Button) findViewById(R.id.button1);
buttontest.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  Log.i("TEST", "button onClick");
 }
});

多个button对应一个监听1:

start = (Button) findViewById(R.id.button1);
stop = (Button) findViewById(R.id.button2);
start.setOnClickListener(mylistener );
stop.setOnClickListener(mylistener );
View.OnClickListener mylistener = new View.OnClickListener() {
  @Override
  public void onClick(View v) {
   switch (v.getId()) {
   case R.id.button1:
    Log.d(TAG, "Start to recorder video\n");
    start_recorde();
    break;
   case R.id.button2:
    Log.d(TAG, "Stop to recorder video\n");
    stop_recorde();
    break;
   default:
    break;
   }
  }
};

多个button对应一个监听2:

public class MainActivity extends Activity implements View.OnClickListener{
 //界面元素
 private Button start;
 private Button stop;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  start = (Button) findViewById(R.id.button1);
  stop = (Button) findViewById(R.id.button2);
  start.setOnClickListener(this);
  stop.setOnClickListener(this);
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.button1:
   Log.d(TAG, "Start to recorder video\n");
   break;
  case R.id.button2:
   Log.d(TAG, "Stop to recorder video\n");
   break;
  default:
   break;
  }
 }
}

xml中绑定监听:

<Button
android:id="@+id/button1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="mybuttonlistener">
</Button>

对应java代码如下:

Button btn = (Button) findViewById(R.id.button1);
public void mybuttonlistener(View target){
 //do something5
}

从个人角度来讲,不推荐使用第四种实现方式。

希望本文所述对大家Android程序设计有所帮助。



相关阅读:
C# web api返回类型设置为json的两种方法
php实现查看邮件是否已被阅读的方法
jQuery统计上传文件大小的方法
当用户退出点击浏览器后退仍可回到原来页面的解决方案
C#将jpg转换为pdf的方法
JavaScript实现的GBK、UTF8字符串实际长度计算函数
本月底将停售 Win8/Win8.1专业版升级包和介质包
Win8.1更新时提示错误代码为80246010的解决方案
C语言练习题:自由落体的小球简单实例
深入剖析Android系统中Service和IntentService的区别
很酷的HTML5电子书翻页动画特效
C#生成条形码图片的简单方法
iOS应用开发中监听键盘事件的代码实例小结
详解Linux系统中的SysVinit的机制
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 牡丹江-朱家沟 平山-柴河 万源-邯郸 崖州-琼海 桃村-平邑 海伦-德惠 东莞东-兴城 治山-沈家 宿州-砀山 汤原-绥化 曲阜-海林 合肥南-惠州南 常州-成都 涿州东-阳泉北 清涧县-榆林 四平-淮滨 汪清-吉林 贵港-柳江 庆盛-郴州西 阳平关-上海 喜德-内江 九三-冯屯 一面坡-绥阳 干塘-上腰墩 北戴河-燕郊 黑台-朱家沟 马鞍山-向塘 宁波-徐州 塘沽-交城 商洛-漳州东 菏泽-龙川 玉山-柳州 巢湖-任丘 如皋-湘潭 成都东-六盘水 怀化-太湖 山海关-满洲里 加格达奇-卧里屯 上虞-赣州 温州南-滁州 唐山-柳州 衢州-德兴 黔江-兴国 广通北-鄯善 赤壁-济宁 秦皇岛-郑州西 太平川-通辽 许家屯-辽阳 石嘴山-临河 新余-进贤 北京西-嘉峪关 陇南-绵阳 沈阳-包头 景德镇-玉屏 哈尔滨西-延吉西 株洲-杭州东 平遥-辛集 海林-盖州 繁昌西-苏州 镇远-丰城 富裕-泰来 韶关东-五莲 四方台-香坊 武功-商洛 鹰潭北-海宁西 广州北-萍乡北 铁岭-常州 明城-敦化 松江-黄石 商都-海拉尔 五府山-无为 九龙塘-镇紫街 上店-大陆号 代县-涞源 宝林-东海 南岔-宝泉岭 宣汉-任丘 老莱-青水山 庆安-三河县 高山子-沈阳西 柳州有到百色靖西的客车吗在哪个车站
安亭镇到上海南站客运中心怎么坐车
春节期间适合去的旅游胜地
绍兴马臻路湾楼公寓具体地址在哪?怎么坐车?
汉中到渭南的长途客车汽车一天几趟分别几点发车
漯河到西平打的票价多少钱
顺义文化营到万源街西口怎么走
广东水利水电工程概算中人工预算单价的工资区类别,各类别如何...
武广高铁长沙到株洲
西安列车火车站到福州列车火车站的发车时刻表
沧州到昌黎今天的列车票还有吗
火车列车霍州至临汾
济南到射阳的大巴是几点到几点票价钱数多少 济南到盐城的大巴
广东省云浮市华表石的图片?
庄河一品桃源二期什么时候能盖好
马来西亚护照,旅游路线从 澳门——香港——深圳—珠海—澳门
从郑州火车列车站到郑煤集团怎么坐公交车去
从松原到拉萨坐列车火车要多久
从郑州新郑机场怎么到汽车客车站
请问广州火车列车站到北京路坐几路公交车近呢
从泉州到三明大田会不会很远?坐车车费要多少呢
有没有洛阳到苏州的火车列车票,六号或七号的
从山西宾馆到和平区赤峰道小学怎么走啊,那路车啊
重庆到昆明的客车汽车票在哪里买?
K9122次(深圳到衡阳)的列车,有空调吗窗户是否可以打
天津哪有卖MINICOOPER(迷你库伯)的客车汽车模型和雨燕客车汽车模型的
杭州到贵阳10月2日买得到火车列车票吗票价是多少
从安顺出发至贵阳森林野生动物园路线
上海到太原多少公里
缙云到丽水客车汽车

Copyright © 2016 phpStudy |