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 交通频道 作文范文 小清新的励志签名15句 【记忆中的雨巷】 邦德的衣橱 观《开学第一课》有感600字 关于家的名言锦句 做一个诚实的好孩子作文700字 假如能有机会爱母亲作文800字 我的“警察梦” 残心 假如我在海南岛 人生的脚印 地籍处2010年上半年工作总结 小学六年级作文1000字:我来谈美 《假如给我3天光明》读后感400字 学校实验室事故处理应急预案 宇宙密码 XX村社会主义新农村建设情况汇报 论检察文化的人本建设 幸福,在远方 在太阳底下放慢脚步 【精品】上课迟到检讨书100字 杨花渐欲迷人眼,迷途…… 一份特殊礼物作文700字 关于乡镇旧村改造的思考 山石榴花 2014年检察院检察长述职述廉报告 巧克力乐园 为父母而学习,你是父母的明信片作文600字 今生,我陪你 我自己的小天地400字 临床医学专业毕业实习报告 三年级搞笑作文 午间战场 我心爱的小白兔“点点” 名人励志演讲稿2014 谢友人见访留诗 不要让自己活在别人的世界里,轻松做自己! 暖暖的冬日 学前班美术教学计划 领导在中秋节联欢会上的讲话 高考满分作文700字:我自美我之美 寻路作文600字 鸡蛋浮起来了350字 大学生本学年个人鉴定 这些小感动,谁能给我 描写春天景色的现代诗句 大学秋季开学典礼发言稿 母校十周年校庆演讲稿 会计暑假实习报告范文 高中基础知识落实练习集锦精品34 抹不掉——那段灰色的爱

Copyright © 2016 phpStudy |