Android点击事件

本文详细介绍了Android中实现点击事件的四种方法:结合layout文件声明方法、内部实现类、Activity实现OnClickListener以及匿名内部实现类。每种方法都包括了具体的XML布局代码和事件处理逻辑,帮助开发者更好地理解和应用Android点击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发工具与关键技术:Android Studio
撰写时间:2020年9月26日

Android点击事件四种实现方式:

1、结合layout文件声明方法 2、内部实现类 3、Activity实现OnClickLitener 4、匿名内部实现类
事件写法的思路: (1、根据控件ID去获取控件 (2、设置控件的事件 (3、在事件方法中处理事件

第一种事件写法:结合layout文件声明方法

先按钮给一个onClick属性, android:onClick="onClick" ;
xml代码如下:

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="100dp"
    android:background="@drawable/button_style"
    android:onClick="onClick"
    android:text="按    钮"
    android:textColor="@color/colorWhite"
    android:textSize="22sp" />
结合layout文件声明方法:
import android.view.View;
import android.widget.Toast;

//点击按钮提示
public void onClick(View view) {
    //参数,context,text,duration
    //上下文,要提示的消息,提示显示的时长
    Toast.makeText(ButtonActivity.this, "提示:你点击了按钮", Toast.LENGTH_SHORT).show();
}

Toast.LENGTH_LONG :显示的时间较长,而Toast.LENGTH_SHORT :显示的时间较短;
效果如下图所示:
在这里插入图片描述

第二种事件写法:内部实现类

先按钮给一个id,android:id="@+id/btn_button" ;
xml代码如下:

<Button
    android:id="@+id/btn_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="100dp"
    android:background="@drawable/button_style"
    android:text="按    钮"
    android:textColor="@color/colorWhite"
    android:textSize="22sp" />
内部实现类:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //设置布局
    setContentView(R.layout.activity_button);
    //获取控件
    Button button = findViewById(R.id.btn_button);
    //② 创建内部实现类
    ClickListener clickListener = new ClickListener();
    //② 设置点击事件
    button.setOnClickListener(clickListener);
}
//IDEA alt+enter
//② 第二种事件写法:内部实现类
class ClickListener implements View.OnClickListener{
    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id){
            case R.id.btn_button:
                Toast.makeText(ButtonActivity.this,"提示:你点击了按钮,内部实现类",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

在这里插入图片描述

第三种事件写法:Activity实现OnClickListener

先按钮给一个id,android:id="@+id/btn_button" ;
xml代码如下:

<Button
    android:id="@+id/btn_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="100dp"
    android:background="@drawable/button_style"
    android:text="按    钮"
    android:textColor="@color/colorWhite"
    android:textSize="22sp" />
Activity实现OnClickListener:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class ButtonActivity extends AppCompatActivity implements View.OnClickListener{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置布局
        setContentView(R.layout.activity_button);
        //获取控件
        Button button = findViewById(R.id.btn_button);
        //③ 设置点击事件
        button.setOnClickListener(this);
    }
    //③ Activity实现OnClickListener
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn_button:
                    Toast.makeText(ButtonActivity.this,"提示:你点击了按钮,Activity实现OnClickListener",Toast.LENGTH_SHORT).show();
                    break;
            }
        }
}

在这里插入图片描述在这里插入图片描述

第四种事件写法:匿名内部实现类

先按钮给一个id,android:id="@+id/btn_button" ;
xml代码如下:

<Button
    android:id="@+id/btn_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="100dp"
    android:background="@drawable/button_style"
    android:text="按    钮"
    android:textColor="@color/colorWhite"
    android:textSize="22sp" />
匿名内部实现类:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class ButtonActivity extends AppCompatActivity{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置布局
        setContentView(R.layout.activity_button);
        //获取控件
        Button button = findViewById(R.id.btn_button);

        //④ 匿名内部实现类
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(ButtonActivity.this, "提示:你点击了按钮,匿名内部实现类", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值