复习安卓中的四种单击事件一、最简单的一种就是在布局文件中为按钮设置onClick属性,指定属性值(该属性值就是单击时要实现的方法名称),并在Activity中create该方法,方法名称必须与按钮的onClick属性设置的值完全一致,并且传一个类型为View的对象。
二、为按钮设置单击事件时,实现OnClickListener的匿名内部类。
三、让Activity实现OnClickListener接口,并重写onClick()方法,为按钮的设置单击事件时传一个参数this,省略了本类对象。
四、自定义一个内部类 实现OnClickListener接口,并重写onClick()方法,为按钮设置单击事件时,创建这个类的对象。
Activity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button btn1;
private Button btn2;
private Button btn3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn1.setOnClickListener(this);
// 第二种方法就是用实现匿名内部类的方法
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "这是第二种方法", 0).show();
}
});
// 第四种方法
btn3.setOnClickListener(new Click());
}
// 第三种方法 让Activity实现OnClickListener接口,并重写onClick(View view)方法
@Override
public void onClick(View v) {
Toast.makeText(this, "这是第三种方法", 0).show();
}
// 第一种方法实现的单击事件对应的方法
public void click_(View view) {
Toast.makeText(this, "这是第一种方法", 0).show();
}
// 第四种方法 自定义一个内部类 实现OnClickListener接口,并重写onClick()方法,为按钮设置单击事件时,创建这个类的对象
class Click implements OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "这是第四种方法", 0).show();
}
}
}
布局文件
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.ryw.fourclick.MainActivity" >
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二种单击事件" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第三种单击事件" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第四种单击事件" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click_"
android:text="第一种单击事件" />
</LinearLayout>