Android开发基础: 使用Activity类继承接口实现多个事件的绑定处理 && 将Activity作为实现类传递给setOnClickListener监听器处理多个事件 && 多态实现接口重写

多个事件的监听处理

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可以使用了!");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Forever_Hopeful/article/details/134766674