美文网首页Android Things
Android Studio中”Lambda表达式“使用方法及导

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

作者: LiKaiRabbit | 来源:发表于2017-03-07 16:52 被阅读42次

    一、什么是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并配置好环境变量。##

    jdk8下载地址

    java环境配置---作者:烟花易冷JCL

    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 "http://maven.oschina.net/content/groups/public"
            }
        }
    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"
      }
    

    结束。

    相关文章

      网友评论

        本文标题:Android Studio中”Lambda表达式“使用方法及导

        本文链接:https://www.haomeiwen.com/subject/fuhmgttx.html