首页 > 系统 > Android > 正文

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

2020-04-11 11:03:31
字体:
来源:转载
供稿:网友

本文实例总结了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中绑定监听:

<Buttonandroid: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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表