多个事件的监听处理
Android开发基础: 使用Activity类继承接口实现多个事件的绑定处理 && 将Activity作为实现类传递给setOnClickListener监听器处理多个事件 && 多态实现接口重写
对多个按钮进行事件监听,如果我们想匿名内部类实现起来,代码量是不是非常大呢?Lambda表达式也不能写多个逻辑是不是。
那么我们可以使用功能Activity类本类自己实现View.OnClickListener接口,然后在里面重写方法,使用多态实现共用一个方法
package com.liujintao.day01_code.demo;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.liujintao.day01_code.R;
public class Button_Enabled_Acrivity_Demo5 extends AppCompatActivity implements View.OnClickListener {
private Button btn1, btn2, btn3;
private TextView tv_textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button_enabled_acrivity_demo5);
// 页面一加载,获取所有需要的控件元素
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn3 = findViewById(R.id.btn3);
tv_textview = findViewById(R.id.tv_TextView);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
tv_textview.setOnClickListener(this);
}
// 判断需要处理的事件对象
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn1) {
btn3.setEnabled(true);
btn3.setTextColor(Color.BLUE);
} else if (v.getId() == R.id.btn2) {
btn3.setEnabled(false);
btn3.setTextColor(Color.GRAY);
} else if (v.getId() == v.getId()) {
btn3.setTextColor(Color.BLUE);
tv_textview.setText("解除禁用,btn3可以使用了!");
}
}
}