【Android】06、监听按钮点击事件

来源:互联网 发布:php跳转到另一个控制器 编辑:程序博客网 时间:2024/05/17 05:12

1、监听按钮点击事件的步骤。

1)获取控件对象

2)注册监听器

3)编写响应代码

 

2、注册监听的方式有3种。

1)匿名内部类

 

//获取Button按钮的对象

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

      //给Button添加点击事件的监听

btn.setOnClickListener(new View.OnClickListener(){                               //匿名内部类

     @Override

     public void onClick (View v) {

     //弹出土司显示文本信息

     Toast.makeText(MainActivity.this,"您点击了按钮",Toast.LENGTH_LONG).show();

     //改变TextView的文字

      tv_show.setText("您点击了按钮");

  }

});

 

2)实现接口

 

//获取Button按钮的对象

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

 //给Button添加点击事件的监听

btn.setOnClickListener(this);   

 

 //此时会在this处报错,原因是注册监听器的参数必须是接口类,

而此处的this指的是上下文中的MainActivity,点击alt+enter选择第二个选项使得MainActivity类实现接口。

确定以后,代码更改2部分:

1,原代码public class MainActivity extends Activity {}   变为

                  public class MainActivity extends Activity implements View.OnClickListener {}

2,代码末尾会自动生成

      public void onClick(View v) {             }

方法1中的土司等代码放在这个onClick{}中即可实现同样效果。

 

3)onClick属性

在activity_main.xml文件中,在Button控件代码中添加android:onClick="btnclick"

其中等号后边的"btnclick"为方法名,对应的方法要在MainAcitivy.java中定义。

public void btnclick (View v) {    }

方法1中的土司等代码放在这个btnclick{}中即可实现同样效果。

 

3、三种注册监听器方式的对比。

1)匿名内部类:需要获取控件对象,使用变量不方便;适用于单个事件。

2)实现接口    :需要获取控件对象,使用变量方便;适用于多个事件。

3)onClick属性:无需获取控件对象,使用变量方便;不便于维护。

 

 

 

 

0 0
原创粉丝点击