Android开发:使用Lambda表达式高效开发

简介:

JDK1.8后java开始支持Lambda表达式,使用Lambda表达式我们就可以在Android中替换匿名类的写法。本来一个Button点击事件监听要写6行代码,我们1行就可以搞定。

1.引入依赖

implementation 'me.tatarka:gradle-retrolambda:3.6.0'

2.修改我们JDK成1.8

在Android studio中打开File>project Structure>Modules,将我们的JDk设置成1.8的,快捷键是ctrl+shift+alt+s。
Android开发:使用Lambda表达式高效开发_第1张图片

3.使用Lambda表达式

设置Button监听旧的写法:

    Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              //执行代码
            }
        });
        

使用Lambda表达式,v代表onClick(View view)中的view

 button.setOnClickListener(v -> {
            //执行代码
        });

创建线程旧的写法

  new Thread(new Runnable() {
            @Override
            public void run() {
                //执行代码
            }
        }).start();

使用Lambda表达式,run()方法没有参数,顾使用()来表示

    new Thread(() -> {
            //执行代码
        }).start();

checkBox状态改变监听旧写法

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                //执行代码
            }
        });

使用Lambda表达式,onCheckedChanged()方法有俩个参数,因此用()把参数包起,buttonView对应compoundButton,isChecked对应b

     checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
            //执行代码
        });

使用起来还是很方便的:匿名内部类中的方法没有参数时就用()表示,有一个参数是就用一个参数v表示,如果有多个参数则用()包起来,参数之间逗号隔开。

你可能感兴趣的:(android开发基础)