一.studio中引入Lambda

依次点击File->Other Settings->Default Project Structure

JDK 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);});

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)Studio中编译时遇到Finished with non-zero exit v
  3. 【小知识点总结】保存android日志logcat到文件中
  4. Android(安卓)studio常用设置和快捷键
  5. 【Android(安卓)开发教程】ListView的扩展功能
  6. 安装android-ndk-1.5_r1遇到的问题及解决方法
  7. [安卓开发Android][叠层 层叠 卡片效果]RecyclerView与CardView
  8. android抽屉SlidingDrawer——错误显示
  9. android Handler Looper,MessageQueue消息机制原理

随机推荐

  1. FFmpeg 2.8.4 移植到android平台(二)
  2. Android(安卓)Studio开发工具快捷键
  3. vitamio视频播放报错: java.lang.Unsatis
  4. 【安卓学习总结】安卓开发
  5. Android(安卓)listview适配器
  6. Android(安卓)地址选择器仿京东;
  7. Android中的drawable像素密度适配详解
  8. Android败笔之ListView设置分割线颜色
  9. Android(安卓)- 修改最小SDK版本(minSdkV
  10. Android(安卓)ObjectAnimator基础用法