Android開發:使用Lambda表達式高效開發

簡介:

JDK1.8後java開始支持Lambda表達式,使用Lambda表達式我們就可以在Android中替換匿名類的寫法。本來一個Button點擊事件監聽要寫6行代碼,我們1行就可以搞定。

1.引入依賴

implementation 'me.tatarka:gradle-retrolambda:3.6.0'

2.修改我們JDK成1.8

在Android studio中打開File>project Structure>Modules,將我們的JDk設置成1.8的,快捷鍵是ctrl+shift+alt+s。
在這裏插入圖片描述

3.使用Lambda表達式

設置Button監聽舊的寫法:

    Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              //執行代碼
            }
        });
        

使用Lambda表達式,v代表onClick(View view)中的view

 button.setOnClickListener(v -> {
            //執行代碼
        });

創建線程舊的寫法

  new Thread(new Runnable() {
            @Override
            public void run() {
                //執行代碼
            }
        }).start();

使用Lambda表達式,run()方法沒有參數,顧使用()來表示

    new Thread(() -> {
            //執行代碼
        }).start();

checkBox狀態改變監聽舊寫法

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                //執行代碼
            }
        });

使用Lambda表達式,onCheckedChanged()方法有倆個參數,因此用()把參數包起,buttonView對應compoundButton,isChecked對應b

     checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
            //執行代碼
        });

使用起來還是很方便的:匿名內部類中的方法沒有參數時就用()表示,有一個參數是就用一個參數v表示,如果有多個參數則用()包起來,參數之間逗號隔開。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章