Android四种点击事件方法
android中的按钮点击事件,有四种:
1.内部类
2.匿名内部类
3.布局文件夹定义Onclick属性,并在activity中声明方法
4.在主类中实现OncickListener接口,并在主类中实现未实现的方法
1、内部类
点击事件内部类中,需要给按钮设置事件监听,setOnClickListener()需要指定监听对象,因此需要实现OnClickListener接口,并实现接口中的方法。
//设置第一种点击事件
my_btn.setOnClickListener(new MyListener());
class MyListener implements View.OnClickListener{
@Override
public void onClick(View v) {
//获取用户号码
String number = my_et.getText().toString();
//判断号码是否为空
if (TextUtils.isEmpty(number) ){
Toast.makeText(MainActivity.this,"请输入您的号码!",Toast.LENGTH_SHORT).show();
}
}
2、匿名内部类
直接创建匿名内部类并实现回调函数方法
//设置第匿名内部点击事件
my_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取用户号码
String number = my_et.getText().toString();
//判断号码是否为空
if (TextUtils.isEmpty(number) ){
Toast.makeText(SecondOnClickDemo.this,"请输入您的号码!",Toast.LENGTH_SHORT).show();
}
}
});
3、布局文件夹定义Onclick属性,并在activity中声明方法
在布局中直接调用点击事件函数
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/et"
android:text="拨打电话"
android:onClick="btnOnClick"
android:textSize="18sp"/>
public void btnOnClick(View v){
//获取用户号码
String number = my_et.getText().toString();
//判断号码是否为空
if (TextUtils.isEmpty(number) ){
Toast.makeText(MainActivity.this,"请输入您的号码!",Toast.LENGTH_SHORT).show();
}
}
4、在主类中实现OncickListener接口,并在主类中实现未实现的方法
public class MainActivity extends Activity implements OnClickListener
btnButton.setOnClickListener(this);
@Override
public void onClick(View v) {
//获取用户号码
String number = my_et.getText().toString();
//判断号码是否为空
if (TextUtils.isEmpty(number) ){
Toast.makeText(MainActivity.this,"请输入您的号码!",Toast.LENGTH_SHORT).show();
}
}
此方法实现点击事件监听有不足,需要我们处理。如果一个activity中有多个button点击事件:
btnButton1.setOnClickListener(this);
btnButton2.setOnClickListener(this);
btnButton3.setOnClickListener(this);
如果上面三个button点击事件,不做相关的业务处理,点击任何与一个button点击事件相关的处理都是执行onClick()方法中的事件处理体。
因此需要传入相应的button的id进行区分处理:
public class MainActivity extends Activity implements OnClickListener
btnButton1.setOnClickListener(this);
btnButton2.setOnClickListener(this);
btnButton3.setOnClickListener(this);
@Override
public void onClick(View v){
int id = v.getId();
switch(id){
case R.id.btnButton1:
break;
case R.id.btnButton2:
break;
case R.id.btnButton3:
break;
default:
}
}
//以上的case:针对不同的button,设置不同的点击事件