Android的按钮四种点击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android的按钮四种点击事件相关的知识,希望对你有一定的参考价值。

本文记录一下按钮的四种点击事件

第一种

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //------------第一种----------------------
        Button bt1=(Button)findViewById(R.id.bt1);
        bt1.setOnClickListener(new MyListener());
    }
    
    class MyListener implements OnClickListener{
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            System.out.println("这是第一种");
        }
    }
}

第二种

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //------------第二种----------------------
        Button bt2=(Button)findViewById(R.id.bt2);
        bt2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                System.out.println("这是第二种");
                
            }
        });
    }
    
    class MyListener implements OnClickListener{
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            System.out.println("这是第一种");
        }
    }


}

代码量比较大,不能重复利用

第三种

public class MainActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //------------第三种----------------------
        Button bt3=(Button)findViewById(R.id.bt3);
        bt3.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        System.out.println("这是第三种");
    }
}

第四种

在activity_main.xml中添加下面的代码:

     <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第四种" 
        android:onClick="youyiyi"
        />

在MainActivity.java中添加下面的代码:

public class MainActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    //------------第四种----------------------
    //当按钮被点击时,此方法会被调用
    public void youyiyi(View v) {
        // TODO Auto-generated method stub
        System.out.println("这是第四种");
    }
}

代码结构很差

完整的代码如下:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第一种" />

    <Button
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二种" />
    
     <Button
        android:id="@+id/bt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第三种" />
      
     <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第四种" 
        android:onClick="youyiyi"
        />

</LinearLayout>

MainActivity.java

package com.wuyudong.clickevent;

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;

public class MainActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //------------第一种----------------------
        Button bt1=(Button)findViewById(R.id.bt1);
        bt1.setOnClickListener(new MyListener());
        //------------第一种----------------------
        //------------第二种----------------------
        Button bt2=(Button)findViewById(R.id.bt2);
        bt2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                System.out.println("这是第二种");
                
            }
        });
        //------------第二种----------------------
        
        //------------第三种----------------------
        Button bt3=(Button)findViewById(R.id.bt3);
        bt3.setOnClickListener(this);
        
        //------------第三种----------------------

    }
    
    class MyListener implements OnClickListener{
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            System.out.println("这是第一种");
        }
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        System.out.println("这是第三种");
        
    }
    
    //------------第四种----------------------
    //当按钮被点击时,此方法会被调用
    public void youyiyi(View v) {
        // TODO Auto-generated method stub
        System.out.println("这是第四种");
    }
}

以上是关于Android的按钮四种点击事件的主要内容,如果未能解决你的问题,请参考以下文章

为啥片段中的晶圆厂不响应点击事件?

如何绑定android点击事件

Android Button四种点击事件和长按事件

Android笔记---点击事件的四种写法

Android中点击事件的四种写法详解

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法