Android开发之View点击事件:三种方式实现OnClickListen

本文详细介绍了在Android开发中实现View点击事件的三种方式,包括使用OnClickListener的匿名内部类、内部类以及通过onClick属性自定义public方法或实现接口。针对不同情况,开发者可以选择合适的方式来监听和处理按钮点击事件。

Android开发之View点击事件:三种方式实现OnClickListen

OnClickListener是Android监听器中的一种,下面介绍三种方式实现OnClickListener接口监听器。其中第二第三种分别有两种方法:
1、实现匿名内部类。
这是最简单也最直接的方式
注意:
这种方法适合只希望对监听器进行一次性使用的情况,当按钮较少或只有一个按钮时,可以直接创建OnClickListener的匿名内部类传入按钮的setOnClickListener参数中,在该代码块运行完毕之后,该监听器也就不复存在了。
代码:**

final Button button01=(Button)findViewById(R.id.button01);//后面的button01为你在activity xml中设定的按钮id
button01.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
		Toast.makeText(MainActivity.this,"点击了Button!!!",Toast.LENGTH_LONG).show();
	}
});**

注意:
这里你使用的按钮组件是那个,你就以此new他的OnClickListener对象。如上,我使用的是imagebutton图片按钮组件,我就以imagebutton调用OnClickListener来new对象。

2、内部类
代码:**

Button button01=(Button) findViewById(R.id.button01);//后面的button01为你在activity xml中设定的按钮id
button01.setOnClickListener(new MyButton());
private class MyButton implements View.OnClickListener{
    @Override
    public void onClick(View v) {
    	Toast.makeText(MainActivity.this,"点击了Button!!!",Toast.LENGTH_LONG).show();
	}
}**

注意:以上两个实现的监听器在onCreate(Bundle savedInstanceState)方法中的调用都是一样的,即,使用**xxxx.setOnClickListener()**方法。(xxxx为调用对象)

3、通过onClick属性自定义public方法实现或主类中实现OnClickListener接口,需要重写onclick():
(1)通过onClick属性自定义public方法实现:
在MainActivity.java中添加
代码:**

public void myClick(View v){
	Toast.makeText(MainActivity.this,"点击了Button!!!",Toast.LENGTH_LONG).show();
}**

在activity_mian.xml中的需要调用监听器的组件标签内添加:android:onClick=“myClick”

注意:
该方法不同于前面两种方式代码是放在onCreate(Bundle savedInstanceState)方法中,该方法需要在onCreate()方法外声明并定义,同时,如果方法内使用了组件对象(如Button对象),需要把该对象定义为全局变量才能使用。且该方法必须是public方法

(2)主类中实现OnClickListener接口,并重写onclick():**

protected void onCreate(Bundle savedInstanceState) {
//这里省略前面已存在的代码
//创建对象
Button button01=(Button) findViewById(R.id.button01);
//按钮绑定接口
button01.setOnClickListener(this);
}
//在重载的方法中实现点击设置
@Override
public void onClick(View v) {
	Toast.makeText(MainActivity.this,"点击了Button!!!",Toast.LENGTH_LONG).show();
}

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值