android Button实现点击事件的三种方法

一、使用匿名内部类实现 onClickListener接口,通用;

二、让MainActivity实现onClickListener接口,这种方法适合于有多个组件时,这样用会更加的方便;

三、在XML文件中的相应组件中定义onClick方法,自定义的方法;

实现的源码:

package com.example.clickbutton;



import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

//此处为了用第二种方法所以在开始的Activity中实现了Onclicklistener接口;

public class MainActivity extends Activity implements OnClickListener

{

	

	private Button button,button2,button3,button4;

	

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		button=(Button)findViewById(R.id.button1);

		button2=(Button)findViewById(R.id.button2);

		button3=(Button)findViewById(R.id.button3);

		button4=(Button)findViewById(R.id.button4);

		button2.setOnClickListener(this);//第二种方式的button

		button3.setOnClickListener(this);//第二种方式的button

		

		

		

//		第一种:使用匿名内部类:

		button.setOnClickListener(new OnClickListener() {

			

			@Override

			public void onClick(View v) {

				// TODO Auto-generated method stub

				Toast.makeText(MainActivity.this , "这是第一个button", 1).show();

				

			}

		});

	}





	@Override

	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.

		getMenuInflater().inflate(R.menu.main, menu);

		return true;

	}

//	第二种:让MainActivity implements OnClickListener 接口,这样就可以如下写了:

	

	public void onClick(View v) {

		// TODO Auto-generated method stub

		switch (v.getId()) {

		case R.id.button2:

			Toast.makeText(MainActivity.this , "这是第二个button", 1).show();

			break;

		case R.id.button3:

			Toast.makeText(MainActivity.this , "这是第三个button", 1).show();

			break;



		default:

			break;

		}

		

	}

// 第三种是用xml定义(绑定)一个onClickListener事件

	public void showMessage(View v){

		Toast.makeText(MainActivity.this, "第三种方法实现事件绑定的button", 1).show();

	}



}

 第三种在XML中的组件代码:

 
      

 <Button

        android:id="@+id/button4"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@id/button3" 

        android:text="@string/button4"

        android:onClick="showMessage"/>

 

你可能感兴趣的:(android)