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.