1. 程式人生 > >Android studio使用Lambda表示式

Android studio使用Lambda表示式

Android Studio預設使用Lambda表示式是會報錯的,即使你使用的是Java 8,為了在android studio中使用lambda表示式,我們必須藉助一個外掛retrolambda ,該外掛將java 8中的lambda表示式特性相容到Java 5。使用它也很簡單。

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

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

最終整個檔案會像這樣子

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'me.tatarka:gradle-retrolambda:3.2.0' }
} allprojects { repositories { jcenter() } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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

apply plugin: 'me.tatarka.retrolambda'
  • 1
  • 1

並且在android節點下加入

    compileOptions {
        sourceCompatibility JavaVersion.VERSION
_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

最終整個檔案就像這樣子

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' }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

現在讓我們試試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()
      }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

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

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

相關推薦

android studio使用Lambda表示式的正確姿勢

今天使用了一下java8的新特性,lambda表示式的使用,下面的關於studio配置方式會詳細展出: 1、在根build中加入: classpath 'me.tatarka:gradle-retrolambda:3.2.0' 2、在module的build中加入:

Android配置可使用Lambda表示式

在app目錄下的build.gradle裡面新增 apply plugin: 'me.tatarka.retrolambda' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompati

《在飛Android Kotlin快速入門-lambda表示式篇2》

hi各位,這章主要是lambda表示式的快速入門。     大家都知道程式設計有OOP與FP(函數語言程式設計),Kotlin支援將函式,像java中的物件那樣來使用的,所以就有了lambda表示式。 一:閉包:   "()->Int 

Android tips(十三)-->Android開發過程中使用Lambda表示式

新的Java8 API中提供了不少新的特性,其中就有Lambda表示式。而本文我們將主要介紹一下在Android開發過程中如何使用Lambda表示式,這裡主要是為我們後續介紹RxAndroid、RxJava相關知識做鋪墊的。 Lambda表示式的概念

Android學習之使用正則表示式Pattern與Matcher來判斷字串格式

/** * 主介面 * * @author yuzhentao */ public class MainActivity extends Activity implements View.OnClickListener{ private Context context; privat

android 通過正則表示式遍歷html中所有的img標籤

String reg = "<img.*?>"; Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.matcher(sendString);//sendString為網

java/android 正則表示式去除所有HTML標籤

protected string str = "<table><tr><td>sdasasdsdd</td></tr></table><br><p>sds</p>&l

Android 正則表示式及應用

一、 正則表示式 (一)、概念:         正則表示式(regular expression)就是由普通字元(例如a到z)以及特殊字元(稱為元字元)組成的一種字串匹配的模式,可以用來檢查一個串是否含有某種子

Android過濾emoji表情正則表示式

做了一些資訊提交的操作,輸入了Emoji表情時,後臺資料庫無法儲存 原因:UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情是4個位元組,而Mysql的utf8編碼最多3個位元組,所以資料插不進去 討論了一些方案,最後還是前端來做過濾,如果是Emoji表情直接幹掉

Android 正則表示式判斷手機電話號碼是否合法

1、手機號開頭集合166,176,177,178180,181,182,183,184,185,186,187,188,189  145,147   130,131,132,133,134,135,13

Android studio使用Lambda表示式

Android Studio預設使用Lambda表示式是會報錯的,即使你使用的是Java 8,為了在android studio中使用lambda表示式,我們必須藉助一個外掛retrolambda ,該外掛將java 8中的lambda表示式特性相容到Java 5。使用它

Android 常用正則表示式整理

前言 閒扯一下,已經有好久沒更新部落格了,記得上一篇部落格的更新時間為 2017-05-12 15:20。截止到今天,超過一百天沒更新了。 這篇部落格的內容大多數是從別的部落格摘抄過來的,寫這篇部落格的目的主要是整理正則表示式的文章,方便日後檢視。 java 正則表示式常用的字元說明常用的正則表示式java

Android中驗證姓名、身份證、銀行卡、手機號(正則表示式校驗)

最近專案中遇到驗證銀行卡號的問題,就查了一下,也總結總結,後期如果發現其他資訊驗證的會補上的。  1.驗證輸入的身份證號是否正確 public static boolean isLegalId(String id) { if (id.toUpperCase

Android Studio Lambda表示式的使用

寫的時候強迫症去看了下黃色警告 發現這個東西,點一下replace with lambda後改變如下 FROM myAdapter.setOnItemSwitchClickedListener(new OnItemSwitchClickedListener

Android 2018最新驗證手機號正則表示式

/** * 判斷字串是否符合手機號碼格式 * 移動號段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188 * 聯通號段: 130,131,132,145,155,1

lambda expression are not supported at this language level (Android Studio中使用lambda表示式)

lambda是java8中的新特性,Android預設不支援lambda表示式。這篇文章主要是講在android studio中lambda的配置。 三步: 1.專案根目錄的project/build.gradle 中新增lambda依賴: depen

Android正則表示式匹配字串

在應用開發過程中,經常會碰到要檢索出某個字串中特定格式的字元,比如說微博@**被標記為藍色,聊天時“[微笑]”被解析為表情等等,這就用到了正則表示式。 規則可以查閱http://www.jb51.net/shouce/jquery1.82/regexp.htm

Android正則表示式判斷手機號碼的格式

 判斷手機號碼是否正確的方法: public static boolean isPhone(String inputText) { Pattern p = Pattern.compile("

android 開發--抓取網頁解析網頁內容的若干方法(網路爬蟲)(正則表示式

網頁有兩種格式,一種是xml另一種是html,目前似乎好像大部分都是html格式的,檢視網頁格式的方法是在瀏覽器中右鍵-->檢視原始碼 一,XML解析的三大方法 (1) SAX: Simple API for XML SAX是一個解析速度快並且佔用記憶體少的XML解析

Android Studio 使用 Lambda表示式

AS2.1的Jack編譯器終於支援Java8的一些新特性了,下面介紹在AS中使用Lambda表示式。 1.配置build.gradle(Module:app) apply plugin: 'com.