Android学习笔记--监听按钮的点击事件

来源:互联网 发布:淘宝店铺显示未开店 编辑:程序博客网 时间:2024/05/17 07:27

首先,在layout文件夹下定义多个按钮,例如Button1, ImageButton2

之后,在src文件夹下的MainActivity.java文件下,监听按钮的点击事件,实现方法主要有三种


在写方法之前,通用的操作是初始化当前的空间


private Button loginButton;

private ImageButton imageButton;

一,最为常见的匿名内部类方法

在OnCreat()方法下,定义一个监听器并实现点击Button后所要进行的操作


<span style="font-size:18px;">loginButton=(Button)findViewById(R.id.Button1);</span>

<span style="font-size:18px;">loginButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub//在当前onClick方法中监听点击Button的动作System.out.println("你点击了Button");}});</span>
二,独立类的方法,较少见

同样的,要先在OnCreate方法下,实例化Button

loginButton=(Button)findViewById(R.id.Button1);

<span style="font-size:18px;">public void onClick(View v) {// TODO Auto-generated method stubsuper.onClick(v);//调用父类的onClick事件,也就是说,点击后,子类和父类的onClick方法都会执行Toast.makeText(MainActivity.this, "BTN1执行", 1).show();}   });        }class MyOnClickListener implements OnClickListener{public void onClick(View v){//v代表当前被点击的按钮的对象//Log.i("tag","父类的Click");//假设不论点击哪个按钮,都实现改变透明度的功能v.setAlpha(0.5f);}}</span>

这里要注意一下MainActivity.this这个参数,访问的是当前对象,也就是MainActivity


独立类实现用于:

你定义了很多个button,然后这些点击按钮后,除了实现按钮各自不同的功能外,还要同时实现一个通用的功能(比如点击后按钮变暗)

这时候,外部类实现的好处就体现出来了:

只要是所有按钮都实现onClick()方法,同时也都会实现父类MyOnClickListener的方法。

若用匿名内部类实现,你就需要在每个setOnClickListener(new OnClickListener() 中都重复写一个通用的功能,这样代码重复度太高。

三,接口实现

给MainActivity实现一个OnClickListener接口,此时会生成一个OnClick(View v)方法,当监听事件绑定了一个按钮,点击按钮后,就会触发该方法
老规矩,还是先在OnCreate方法下实例化Button对象

<span style="font-size:18px;">loginButton=(Button)findViewById(R.id.Button1);</span>
<span style="font-size: 18px;">然后在<span style="font-size:18px;">OnClick(View v)定义点击按钮后要实现的功能,</span></span>
<span style="font-size:18px;">然后在<span style="font-size:18px;">OnCreate下绑定按钮</span></span>
<pre name="code" class="java" style="font-size:18px;"><span style="font-size: 18px;">loginButton.setOnClickListener(this);</span>
<span style="font-size: 18px;">this可以直接访问当前类和接口。</span>
<span style="font-size: 18px;"></span>
<span style="font-size: 18px;">以上学习内容来自慕课网http://www.imooc.com/</span>



0 0
原创粉丝点击