简介:
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。
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表示,如果有多个参数则用()包起来,参数之间逗号隔开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)