搜索
java - android 如何使用lambda表达式?
PHPz
PHPz 2017-04-17 14:31:47
[Java讨论组]

如题,最近刚刚开始学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表达式?

PHPz
PHPz

学习是最好的投资!

全部回复(5)
PHP中文网

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

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

PHP中文网

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

PHP中文网

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

ringa_lee

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();
})
ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号