很多的语言都有一些共同的特点,比如OnClick这个东西,可能我们能在js中见到,当然在安卓中也有,可能其他的编程语言也会有这个东西,刚好今天学了这个玩意在安卓中的写法。

点击事件大多用在Button按钮上,比如我们要实现点击一个按钮弹出一个Toast,提示我们这个按钮被点击了,那么一般来说有以下这两种实现方式。

头图:https://www.pixiv.net/artworks/85011843

通过java代码实现点击事件

首先在布局xml文件中写一个button,安卓的布局写起来有些地方和html+css很像,所以上手不是很难。

    <Button
        android:id="@+id/btn_1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:text="按钮1"
        android:textSize="20sp"
        android:textColor="#ff6600"
        android:background="#666"

        />

然后打开当前的activity文件,先注册组件,然后设置监听

    private Button mBtn1;    //注册button组件
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        mBtn1 = findViewById(R.id.btn_1);  //通过id找到需要设置点击事件的按钮
        mBtn1.setOnClickListener(new View.OnClickListener() {    //设置点击监听
            @Override
            public void onClick(View view) {
                Toast.makeText(ButtonActivity.this,"按钮1被点击了",Toast.LENGTH_SHORT).show();// 调用Toast
            }
        });

    }

在布局文件中直接写Onclick

这个方法看起来简洁一些,先在布局xml文件中写一个button,然后为Button设置一个onClick属性。

    <Button
        android:id="@+id/btn_2"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:text="按钮2"
        android:textSize="20sp"
        android:textColor="#ff6600"
        android:background="@drawable/btn_1"
        android:layout_below="@id/btn_1"
        android:layout_marginTop="10dp"
        android:onClick="showToast" //调用showToast方法

        />

接下来需要在activity.java中写一个showToast方法:

    public void showToast(View view){
        Toast.makeText(this,"第二个按钮被点击了",Toast.LENGTH_LONG).show();
    }

完整代码

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15dp"
    tools:context=".ButtonActivity">
    <Button
        android:id="@+id/btn_1"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:text="按钮1"
        android:textSize="20sp"
        android:textColor="#ff6600"
        android:background="#666"

        />

    <Button
        android:id="@+id/btn_2"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:text="按钮2"
        android:textSize="20sp"
        android:textColor="#ff6600"
        android:background="@drawable/btn_1"
        android:layout_below="@id/btn_1"
        android:layout_marginTop="10dp"
        android:onClick="showToast"

        />

</RelativeLayout>

java代码:

package com.kaygb.xiangduibuju;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class ButtonActivity extends AppCompatActivity {
    private Button mBtn1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        mBtn1 = findViewById(R.id.btn_1);
        mBtn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(ButtonActivity.this,"按钮1被点击了",Toast.LENGTH_SHORT).show();
            }
        });

    }
    public void showToast(View view){
        Toast.makeText(this,"第二个按钮被点击了",Toast.LENGTH_LONG).show();
    }
}

效果

image-20201016211846325

点击广告也是对本站的支持哦!(~ ̄▽ ̄)~
本文除特殊注明外版权归属为:风也雨忆笙
文章页脚已标识是否允许转载,转载请注明出处!
本文链接:
最后修改:2020 年 10 月 16 日 09 : 22 PM
如果您觉得我的文章有帮助,请随意赞赏!