Android四种点击事件方法

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,设置不同的点击事件

猜你喜欢

转载自blog.csdn.net/weixin_43220261/article/details/83961439