前言:Hello,大家好!在java中,我们知道按钮的点击事件一共有三种,在学习android开发的过程中呢,我们发现android的按钮点击事件一共有四种,那么分别是哪四种呢?让我们看一下吧!
1.定义一个内部类
内部类定义:在一个类中定义类
方法:在内部中的类实现OnClickListener接口,重写onClick方法,如下代码示例
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
//给按钮设置一个点击事件
btn_call.setOnClickListener(new MyClickListener());
}
//定义一个类,去实现按钮所需要的接口类型
private class MyClickListener implements OnClickListener
{
//Called when a view has been clicked.
@Override
public void onClick(View v) {
//此处填写点击按钮后,要执行的代码
}
}
我们通过调用按钮的setOnClickListener()方法为按钮设置监听对象(就是代码中实现了OnClickListener接口的对象),监听对象的生成使用的方法是内部类的形式
2.通过匿名内部类
匿名内部类:没有名字的类,只能创建一个对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
//[2]找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
//[3]给按钮设置一个点击事件
btn_call.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
method();
}
});
}
private void method() {
}
匿名内部类的格式为:new 接口名(){
需要重写的方法
}
3.MainActivity实现OnClickListener接口
含义:让当前类实现OnClickListener接口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.editText1);
// [2]找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
Button btn_call2 = (Button) findViewById(R.id.button2);
Button btn_call3 = (Button) findViewById(R.id.button3);
// [3]给按钮设置一个点击事件
btn_call.setOnClickListener(this);
btn_call2.setOnClickListener(this);
btn_call3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// 在具有多个按钮的情况下,可以判断哪一个按钮对应的要做什么事情
switch (v.getId()) {
case R.id.button1: // 代表点击了第一个按钮
my();
break;
case R.id.button2: // 代表点击了第一个按钮
my();
break;
case R.id.button3: // 代表点击了第一个按钮
my();
break;
default:
break;
}
}
private void my() {
}
使用此方法可以判断是哪个按钮,在众多按钮中进行选择,实现不同按钮达到不同效果的目的
4.声明一个方法,方法名和你要点击的这个按钮在布局中声明的onClick属性一样
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button2"
android:layout_marginTop="38dp"
android:onClick="myOnClick"
android:text="test" />
//方法的声明是严格固定的
public void myOnClick(View v)
{
System.out.println("我是第四种点击事件");
}
方法的声明是严格固定的,是不能改变的,当然,参数的名字除外。