Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 中使用Lambda表達式

Android 中使用Lambda表達式

編輯:關於Android編程

Android Studio默認使用Lambda表達式是會報錯的,即使你使用的是java 8,為了在android studio中使用lambda表達式,我們必須借助一個插件retrolambda ,該插件將java 8中的lambda表達式特性兼容到java 5。使用它也很簡單。

首先先項目根目錄下的build.gradle中加入

classpath 'me.tatarka:gradle-retrolambda:3.2.0'

最終整個文件會像這樣子

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'me.tatarka:gradle-retrolambda:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

然後再module目錄下的build.gradle中使用插件,加入

apply plugin: 'me.tatarka.retrolambda'

並且在android節點下加入

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

最終整個文件就像這樣子

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
    compileSdkVersion 22
    buildToolsVersion 22.0.1

    defaultConfig {
        applicationId cn.edu.zafu.rxdemo
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName 1.0
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'

}

現在讓我們試試lambda表達式,就拿View的點擊事件做實驗吧。

在使用lambda表達式之前是這樣子的

btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          Toast.makeText(getApplicationContext(), test, Toast.LENGTH_LONG).show()
      }
});

使用了lambda表達式之後是這樣子的

btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(v -> Toast.makeText(getApplicationContext(), test, Toast.LENGTH_LONG).show()
);

好了,運行一下項目,如果點擊按鈕出現了Toast說明你成功了,但是如果你運行出現ClassNotFound的錯誤的話clean一下項目,再編譯運行,就能成功運行了。

怎麼樣,有沒有發現代碼精簡了許多。這篇文章算是開始RxJava(RxAndroid)的學習之路的第一篇博文吧,畢竟RxJava大量使用了lambda表達式特性。雖然也可以不用lambda表達式,但是使用了lambda表達式後會顯得代碼特別精簡。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved