您的当前位置:首页Android Studio中”Lambda表达式“使用方法及导

Android Studio中”Lambda表达式“使用方法及导

2024-12-09 来源:哗拓教育

一、什么是Lambda表达式

Lambda表达式是Java 8引入的一种表达式,lambda表达式允许你通过表达式来代替功能接口,让代码变的简单、而且可读、最重要的是代码量的减少。

代表符号:->。

读音:ˈlæmdə'

二、Lambda表达式在android开发中的的使用

1.在给控件设置监听##

没有使用Lambda的老方法:

      ImageView iv = (ImageView)findViewById(R.id.imageView);
        
      iv.setOnClickListener(new View.OnClickListener() {
      
      @Override
      public void onClick(View v) {
             System.out.println("没有使用lambda");
        }
      });

使用Lambda:

    ImageView iv = (ImageView)findViewById(R.id.imageView);
    iv.setOnClickListener(v -> System.out.println("使用lambda"));

2.创建新的线程##

没有使用Lambda的老方法:

     Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("没有使用lambda");
        }
    });

使用Lambda:

    Thread thread = new Thread(() -> System.out.println("使用lambda"));

这只是我们最经常用到的两种情况。

3.怎么修改现有项目##

在可以修改位置按下alt+enter键(可以修改位置是成灰色)


2017-03-07_173351.png

三、Lambda表达式引入Android studio#

1.下载jdk8并配置好环境变量。##

2.AndroidStudio2.1.1之前版本导入##

1.Modle的build.gradle里添加

apply plugin: 'me.tatarka.retrolambda'
 
android{
    compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }
 }

2.Project的build.gradle里添加

buildscript {
    repositories {
        mavenCentral()
        maven {
            url 
        }
    }
dependencies {
    classpath 'me.tatarka:gradle-retrolambda:2.5.0'
    }
}

3.编译完成。

3.AndroidStudio2.1.1之后版本导入(同时更新SDK至最新)##

Modle的build.gradle里添加

android {
  defaultConfig {
      jackOptions {
          enabled true
      }
  }

  compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
  }
}

编译完成。

4.打包项目时报错:编码GBK不可映射字符##

2017-03-08_212727.png

需要在Modle的build.gradle里添加

  tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
  }

结束。

显示全文