首页 > android 如何使用lambda表达式?

android 如何使用lambda表达式?

如题,最近刚刚开始学android和java,在使用android的过程中发现可以使用lambda表达式。

Button clearBtn = (Button)findViewById(R.id.clear_btn);
clearBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(LoginActivity.this, "button clicked clear", Toast.LENGTH_LONG).show();
            }
        });


比如上面这段代码,如何将new View.OnClickListener()修改成lambda表达式?


Java支持 Lambda 是从 1.8 开始的,Android是基于 Java6 (1.6) 的,所以…… No Way。

如果你是用的 Android Studio,它可能会以 Lambda 的方式简化显示,但实际上不是 Lambda。

在支持 lambda 的 Java 语法中,你的代码对应的 lambda 大概应该是这样

javaclearBtn.setOnClickListener(v -> {
    Toast.makeText(LoginActivity.this, "button clicked clear", Toast.LENGTH_LONG).show();
})

你要是使用idea的话,编译器会提醒使用lambda,但是这样的话。。。并不能通过编译,因为android不支持java8


如果觉得学一门新语言不麻烦的话,推荐Kotlin 支持lambda


Android暂时还不能用,如果在Android studio中使用的话,会有提示“lambda expression are not supported at this language level”。因为lambda是在java8 引进的。

附上一个支持lambda的语言Kotlin的博客:http://www.jianshu.com/p/b6a2cda2f806


楼上都在坑楼主???
负责任地告诉楼主,你是可以在Android使用lambda的,只要用了
https://github.com/evant/gradle-retrolambda
就可以了,gradle-retrolambda是一个gradle插件,把retrolambda的特性带到了android

【热门文章】
【热门文章】