編輯:關於Android編程
Lambda是第十一個希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達式 是Java8的新特性之一:
Lambda表達式 取代了匿名類 ,取消了模板,允許用函數式風格編寫代碼。
由於最近接觸了RxJava,遇到了Lambda,立馬就喜歡上了~所以就學習了一下.
本文主要介紹一下Lambda在Android中替代匿名類的部分使用場景.
在Android中使用Lambda
gradle-retrolambda
A gradle plugin for getting java lambda support in java 6, 7 and android
在Android中使用我們需要使用這個插件,按照配置配置完就行.
實戰使用
由於Lambda 可以取代匿名類,所以我們先來挑幾個匿名類練練手.
這裡先簡單的提及一下Lambda的語法:() -> {}咋一看可能覺得這個什麼鬼啊?看不懂啊!
不急,看幾個例子先~
設置監聽事件
Android中我們設置監聽一般這麼寫:
mFab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { doSomething(); } });
這麼寫AS會提示說匿名類new View.OnClickListener()能被Lambda代替:
提示
那麼用Lambda可以如何寫呢?
mFab.setOnClickListener(v->doSomething());
看到了麼?
整個匿名內部類被v->doSomething()給代替了.
是不是非常簡單?
Ps: 本例子中的`v`代表onClick傳遞的參數v,參數不能省略,但是可以隨意命名.
實現Runnable
在Android中我們起個線程一般這麼寫:
new Thread(new Runnable() { @Override public void run() { doSomething(); } }).start();
而使用Lambda表達式的話可以這麼寫:
new Thread(() -> doSomething()).start();
另外實例化Runnable成員變量也可以這麼寫:
Runnable runnable = ()->doSomething();
看完這兩個例子是否對Lambda感興趣了呢?後續我還會繼續學習,有興趣的請繼續關注~
今天在慕課上學了仿微信的滑動,於是就重新敲了代碼在原有的圖形上又增加了改變字體的顏色。這裡將代碼放在這裡便於以後學習。整個過程用了ViewPager與PagerAdapt
微信作為現代主要通訊之一,很多朋友已經使用微信作為通訊工具了,出門微信一步到位,見面交友也多是問你微信號多少,我加你。那麼手機微信怎麼用呢?怎樣注冊微信號來
效果圖:這個對框完全繼承、仿照AlertDialog,只是實現了自定義效果。另外,沒有實現setIcon,因為iphone中的對話框多數都沒有圖標。附件包含例子、jar包
一 概述原本只是想模仿一下我魂牽夢萦的StoreHouse效果,沒想到意外撸出來一個工具庫。最簡單用法,給我一個path(可以有多段),我還你一個動畫。I have a