Android 中使用Lambda運算式,androidlambda
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運算式後會顯得代碼特別精簡。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。