按钮的主要作用就是触发一个动作,所以会用到监听器。
如何为按钮添加单机事件监听器:
1.匿名内部类作为单机事件监听器
案例:
首先在.xml文件中添加一个按钮一,然后设置其id属性,然后在main里获取按钮id,并添加动作监听
.xml文件
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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"> <Button android:id="@ id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮一" /> </android.support.constraint.ConstraintLayout>
MainActivity.java
package com.example.myapplication2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button=findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"单机了按钮一",Toast.LENGTH_SHORT).show(); } }); } }
2.通过onClick 属性实现
(1)在Activity的java代码中编写一个包含View类型参数的方法。
public void myClick(View view) { //编写要执行的动作代码 }
(2)将android:onClick属性指定为步骤(1)中的方法名。
android:onClick="myClick" //无括号
案列:
.xml文件
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮二" android:onClick="myClick" /> </android.support.constraint.ConstraintLayout>
MainActivity.java
package com.example.myapplication2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void myClick(View view){ Toast.makeText(MainActivity.this,"单机了按钮二",Toast.LENGTH_SHORT).show(); } }