Android开发中给button按钮添加事件处理

1事件处理作用

应用程序是事件驱动的,所以开发应用程序时,和用户的交互主要是监听控件的事件,并处理用户事件,在用户事件的程序程序中完成对应的业务或功能

2步骤

与一般的JAVA程序中事件处理的实现步骤相同
(1)找到控件
(2)设置控件的事件监听器
(3)添加事件处理程序

3实现方法:

与一般的JAVA程序中事件处理的实现方法相同
(1)使用匿名内部类(即在设置事件监听器的同时设置一个匿名类)
(2)使用独立的类(对象)来监听控件的事件并做事件处理
(3)使用实现监听器接口的类
具体如下:
方法一
先在layout布局文件中定义一个button类型的控件并设置控件的id为btnLogin

<Button
   android:id="@+id/btnLogin"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/btnLogin"
   tools:ignore="HardcodedText" />

在Java文件mainActivity.xml中的mainActivity类中声明一个成员变量

 Button btnLogin;

为上面的成员设置处理程序(实际上是设置事件监听器对象)
即在 onCreate方法中,使用内部匿名类来实现click事件监听事件和事件处理,需要new一个OnOnClickListener()对象

btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {//实际处理button的click事件的方法
                // System.out.println("wellcom!");
                //自带的输出方法即通过log类的i方法来输出
                Log.i("LoginTag","你好!");
             }
 }

然后运行项目就可以在Logcat中查看程序执行的效果了
在这里插入图片描述
方法二
在mainActivity内部添加一个OnClickListener监听类型的对象,并通过该对象实现用户对象的事件处理
创建一个OnClickListener类型的匿名派生类并用此派生类创建一个对象,通过此对象来监听和处理事件

  View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        //实现用户对象的处理onClick方法
        public void onClick(View view) {
            Log.i("LoginTag","你好!");
        }
    }; 

然后在oncreate方法中
使用独立对象来监听能够和处理事件即可

   btnLogin.setOnClickListener(clickListener);

方法三
利用mainActivity具备监听对象的方法

public class MainActivity extends AppCompatActivity *implements View.OnClickListener*{
//咋如下定义即可
    @Override
   public void onClick(View view) {
        btnLogin.setOnClickListener(clickListener);    
        }
}

评价
*方法2就相当于把方法1分成两步来写,把内部的(new View.OnClickListener() 写到外面去,比方法1麻烦所以不常用;
如果事件监听器需要独立出来用就用方法3
故方法1通过使用匿名类的方式比较常用

猜你喜欢

转载自blog.csdn.net/LJN951118/article/details/82831867