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 交通频道 作文范文 岂能让“官赌”自毁官德容颜 民风民俗 智能课桌作文600字 别了,我的QQ农场 梦回桃园,弦断,人不在。……《遣怀十首》 电力《安规》学习心得体会 花自飘零作文700字 内心最初的声音作文 妈妈的蒸南瓜 我家的年夜饭作文1000字 父爱如山 母爱如河 关于教育行业的实习日记模版 每次回忆都是浪漫 打造特色文化、以文化力提升发展力 水利水电暑假实习报告5000字 【夜沉】-需思量 善行河北,德存石市 “庆国庆颂祖国”演讲比赛稿 这个温馨的小家 守望岁月里那一抹旖旎 秋的颜色作文 财务管理与成本控制目标的探讨(会员资料) 2017居委会主任述职报告 读《窗边的小豆豆》有感600字—与众不同的成长故事 我因自信而美丽作文 撒娇也是一种学问 《阿飞正传》经典台词,回忆张国荣的经典之作 送给好孩子 励志故事《抉择与坚持》 最新幼儿园庆“六一”文艺节目主持词 为什么你要离开我 阿拉上海人作文400字 过去式的遗忘 闻杜鹃 关于比赛的作文 武术协会2013年工作计划 小学四年级作文550字:特殊的朋友——小鸟 不懂花开 朋友分别的话 当个小孩不容易!作文300字 校园安全工作汇报 汇源果汁收购案被禁后的希望 爱我校园演讲稿 雨成泉发表日志:读《angel heart》有感--faith,hope,love 小学六年级作文900字:一堂有趣的英语课 慧如公园之旅作文400字 大学生单身文化节活动策划书 一家三口在一起才好哩! 梨花作文400字 成功,从自信开始作文650字

Copyright © 2016 phpStudy |