【Android之按钮的三种点击事件】

 

文章目录

一、使用匿名内部类来创建按钮的点击事件

二、通过 布局中指定Onclick属性创建点击事件

三、通过在当前Activity中实现OnclickListener接口。



一、使用匿名内部类来创建按钮的点击事件

在布局里创建一个id为nan_btn的Button按钮,代码如下:

<Button
    android:id="@+id/nan_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮的点击事件之一:通过id来创建"
    android:background="#04EDAF"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"/>

然后在此布局相对应的Activity中写逻辑代码:

public class MainActivity extends AppCompatActivity {
    private Button btn;//声明按钮的变量
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //将声明的变量绑定按钮的id
        btn=findViewById(R.id.nan_btn);
        //用绑定后的变量创建点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //在此设置按钮点击后的事件
                btn.setText("按钮点击事件的第一种已经触发~~~");

            }
        });
    }
}

以上就是通过id  匿名内部类方式创建的点击事件。 


二、通过 布局中指定Onclick属性创建点击事件

在布局中添加Onclick属性来创建点击事件,记得给按钮起个id

<Button
    android:id="@+id/nan_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮的点击事件之二:通过布局添加Onclick属性来创建"
    android:background="#04EDAF"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    android:onClick="onclick"/>

当你添加Onclick属性时会报错,因为没有在Activity中创建,可以在Onclick属性那里 按下快捷键:“Alt+回车” 。

Android 按钮四次点击 安卓按钮点击事件_ide

创建后会自动跳转到Activity中,此时Onclick事件就创建ok了:

Android 按钮四次点击 安卓按钮点击事件_android_02

这种方式比第一种方式交方便些,写下点击事件就ok了

 

public class MainActivity extends AppCompatActivity {
    private Button btn;//声明按钮的变量
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //将声明的变量绑定按钮的id
        btn=findViewById(R.id.nan_btn);
    }

    public void onclick(View view) {
        btn.setText("方式二:通过布局中添加Onclick属性");
    }
}

三、通过在当前Activity中实现OnclickListener接口。

方式三是通过在Activity中实现OnclickListener接口来实现

布局还是如此:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="【按钮的三种点击事件】:"
       android:textSize="26sp"
        android:textColor="#EF3C00"
        android:textStyle="italic"
        android:layout_marginBottom="20dp"/>
<Button
    android:id="@+id/nan_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮的点击事件之三:通过Activity中实现OnclickListener接口来创建"
    android:background="#04EDAF"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    />
</LinearLayout>

Activity中实现OnclickListener接口:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn;//声明按钮的变量
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //将声明的变量绑定按钮的id
        btn=findViewById(R.id.nan_btn);
        //方式三通过实现接口来创建点击事件    初始化控件
        btn.setOnClickListener(this);//this 代表了OnclickListener的引用
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.nan_btn://每个按钮的id
                btn.setText("方式三:通过实现接口来实现点击事件");
                break;
        }
    }
}

 这种通过实现OnclickListener接口来创建的点击事件  较 前两种  省下很多代码量


总结

按钮的三种点击事件,各有利弊,可以根据需求来选择。