Android Studio引入Lambda以及介绍和简单实用
2018-03-17 11:52
751 查看
一.studio中引入Lambda
依次点击File->Other Settings->Default Project StructureJDK location确保当前项目实用的JDK版本是1.8
打开项目(Project)的build.gradle,在dependencies节点添加
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
打开项目(Module)的build.gradle在根节点添加
apply plugin: 'me.tatarka.retrolambda'在android接点添加
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
二.使用lambda表达式的三种写法
当我们在Android开发中,去写一个线程或者button的点击事件时,写完之后使用代码折叠功能,可以看到如下预览这个其实就是Lambda表达式的写法,对于我们开发来说,不会去关心这个类以及方法
只会关心这个方法内的代码,所以其他的多余代码就显得多余了。
1.第一种方式,无参数+语句(代码块):使用于匿名内部类中方法无参数的情况
public void testNombal(){//传统写法
myHandler.postDelayed(new Runnable() {
@Override
public void run() {
Log.e("TAG","lambda");
}
},1000);
}
//Lambda表达式写法
public void testLambda(){
myHandler.postDelayed(() -> Log.e("TAG","lambda"),1000);
}
2.第二种方式,有参数+语句:适用于内部类中方法只有一个参数的情况
/*** 第二种方式,有参数+语句:使用于匿名内部类方法只有一个参数的情况
* 方法参数 -> 语句
* 活
* 方法参数 ->代码块
*/
/**
* 传统写法
*/
findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("TAG","test");
}
});
/**
* 使用lambda表达式
*/
findViewById(R.id.button3).setOnClickListener(v-> Log.e("TAG","test"));
3.第三种方式,有参数+代码块:适用于匿名内部类中方法不只一个参数的情况
/*** 第三种方式,有参数+代码块:适用于匿名内部类中方法不止一个参数的情况
* (参数1,参数2) -> 语句
* 或
* (参数1,参数2)-> {代码块}
*/
CheckBox checkBox = findViewById(R.id.checkbox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.e("TAG","test");
}
});
checkBox.setOnCheckedChangeListener((buttonView,isChecked) -> {
Log.e("TAG","test");
Log.e("TAG","test"+isChecked);
});
相关文章推荐
- Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简单介绍(20160118更新)
- Android反编译工具介绍与简单实用方法
- lambda表达式介绍以及Android Studio引入lambda
- Android反编译工具介绍与简单实用方法
- 【Android进阶】Junit单元测试环境搭建以及简单实用
- Android studio引入so文件的方法,最简单快捷的方法!
- Androidstudio生成aar 和 jar (生产jar包含第三方的jar ,比如tsp.jar包含okhttp.jar) 以及 Module build.gradle引入aar资源
- Android反编译工具介绍与简单实用方法
- Android Fragment(三)ListFragment简单介绍以及Fragment之间通信
- Android中Lambda表达式的使用,以及如何引入
- Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
- AndroidStudio操作笔记--简单介绍1
- 关于Android动画插值器的简单介绍以及如何自定义自己的插值器
- Android 视频播放器之JieCaoVideoPlayer的简单实用以及自定义UI
- Android Studio IDE 简单学习和介绍
- iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
- Android Studio超实用插件--ADB WIFI 使用的介绍
- android studio使用教程(四)Gradle简单介绍
- Android Studio引入.so文件的正确姿势 以及调用.so 文件时报错has text relocations 解决
- Android的简单介绍以及搭建运行环境