很多的语言都有一些共同的特点,比如OnClick这个东西,可能我们能在js中见到,当然在安卓中也有,可能其他的编程语言也会有这个东西,刚好今天学了这个玩意在安卓中的写法。
点击事件大多用在Button按钮上,比如我们要实现点击一个按钮弹出一个Toast,提示我们这个按钮被点击了,那么一般来说有以下这两种实现方式。
通过java代码实现点击事件
首先在布局xml文件中写一个button,安卓的布局写起来有些地方和html+css很像,所以上手不是很难。
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属性。
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"?>
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">
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"
/>
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"
/>
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();
}
}
效果