首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RetroLambda与TextChangedListener

RetroLambda与TextChangedListener
EN

Stack Overflow用户
提问于 2016-04-03 13:48:46
回答 1查看 604关注 0票数 2

你好,我是RetroLambda的新手。现在,我正在与Runnable、OnClickListener等一起使用它。问题是: RetroLambda是否可以与onTextChangeListener这样的类一起使用?例如,如何对此进行评语

代码语言:javascript
复制
etmessage.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (count > 0) {
                okmenubutton.setEnabled(true);
                okmenubutton.getIcon().setAlpha(255);
            } else {
                okmenubutton.setEnabled(false);
                okmenubutton.getIcon().setAlpha(130);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 21:38:28

Retrolambda将Java 8特性移植到以前的JVM版本。当您使用lambda而不是Runnable时,它被称为自动SAM转换,其中SAM代表单个抽象方法。这意味着,如果您有一个接口或一个具有单个抽象方法的抽象类,则可以用具有相同签名的lambda替换它。正如您所看到的,TextWatcher有三个抽象方法,不能用lambda替换它。

如果您想使用lambda,可以为每个TextWatcher方法定义单方法接口,并实现将接受这些接口的助手方法,每个方法一个,创建一个将调用委托给接口的TextWatcher,并将TextWatcher添加到TextView

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36386197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档