(android) android 如何使用lambda表达式?

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

Button clearBtn = ButtonfindViewByIdR.id.clear_btn;
clearBtn.setOnClickListenernew View.OnClickListener { public void onClickView v { Toast.makeTextLoginActivity.this, "button clicked clear", Toast.LENGTH_LONG.show; } }; 

比如上面这段代码,如何将new View.OnClickListener修改成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

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

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

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

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

javaclearBtn.setOnClickListenerv -> { Toast.makeTextLoginActivity.this, "button clicked clear", Toast.LENGTH_LONG.show;
}

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注