- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
大家好,我是 RetroLambda 的新手。现在我将它与 Runnable、OnClickListener 等一起使用。问题是:是否可以将 RetroLambda 与 onTextChangeListener 等类一起使用?例如如何 lambda this
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) {
}
});
谢谢。
最佳答案
Retrolambda 将 Java 8 功能移植到以前的 JVM 版本。当您使用 lambda 而不是 Runnable
时,它称为自动 SAM 转换,其中 SAM 代表单一抽象方法。这意味着如果你有一个接口(interface)或一个抽象类只有一个抽象方法,你可以用具有相同签名的 lambda 替换它。如您所见,TextWatcher
具有三个抽象方法,并且不能用 lambda 代替。
如果您想使用 lambda,您可以为每个 TextWatcher
方法定义单一方法接口(interface),并实现将接受这些接口(interface)的辅助方法,每个方法一个,创建一个 TextWatcher
将调用委托(delegate)给接口(interface),并将 TextWatcher
添加到 TextView
。
关于java - 带有 TextChangedListener 的 RetroLambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36386197/
我尝试仅在填充表单中的每个字段后启用按钮。为此,我使用了 TextWatcher,但我不断收到错误。 这可能与我的 contentView 为 Activity_add_grade 而我的按钮和字段位
我正在尝试使用 TextChangedListener 在我的 ListView 上实现搜索功能。但是在 EditText 中添加了一些字符之后; ListView 变为空白。我在我的 ArrayAd
我正在尝试将 TextChangedListener 添加到我的 EditText: statusText = (EditText) findViewById(R.id.statusT
在 Xamarin 中,我可以为 EditText 对象的 TextChangedListener 编写一些代码吗? 这是我目前所拥有的: public class InputTextWatcher
所以我一直在尝试为 Android 实现 TextWatcher 并遇到了一些问题,因为我想将 EditText 小部件中的文本转换为货币格式的字符串,多次调用 TextChangedListener
我在运行这段特定代码时遇到 StackOverflow 错误: litera.addTextChangedListener(new TextWatcher(){ public
我使用 AddTextChangedListener 来编辑文本: edit_text.AddTextChangedListener(new NumberTextWatcher()); 现在我想删除
对于我的 android 应用程序,每次 RadioButton 切换状态时,我都需要更改 textChangedListener。有 4 个可能的按钮,每个按钮都有一个相应的 EditText 框。
通过阅读 Android 文档,我了解到无法将 addTextChangedListener 用于 Spinner,但是我是否缺少替代方案? 我已经创建了许多表单,并且我想在有未保存的更改时通知用户(
假设我想从编辑文本中删除一些不好的词。父亲叔叔表哥 King 会被 F**K... 但问题是,如果我更改文本,它会再次更改处理程序。任何人都知道解决方案。请帮忙。代码在那里。 search_name.
我有一个 Activity ,其中有一个 viewpager 和 4 个 fragments 作为页面。 在其中一个 fragment 中我需要处理后退按钮按下,所以我这样做: public void
大家好,我是 RetroLambda 的新手。现在我将它与 Runnable、OnClickListener 等一起使用。问题是:是否可以将 RetroLambda 与 onTextChangeLis
我试图将编辑文本值限制为小于或等于 130。在 onCreate 方法中,我执行了以下操作: final EditText expectedYears = (EditText)findViewById
我试图创建一个自动计算百分比的应用程序。百分比值将显示在 TextView 中。 TextView 中显示的值将基于用户在编辑文本中输入的值。 我已经完成了该程序的代码创建,但是每次我尝试在编辑文本中
我知道我们可以使用 addTextChangedListener 将 TextWatcher 添加到 EditTexts 并使用 removeTextChangedListener 将其删除。但现在我
我是 android 编程的新手。我遇到了一个问题,我很难应用本主题中给出的解决方案: How to format the input of EditText when typing with tho
我正在创建一个包含 EditText 的类,当此 EditText 更改时,我将值存储在此类的一个变量中。 但是我在另一个类中也需要这个值,并且我想在每次 EditText 更改时更新这个值。 那么这
如何在 TextChangedListener 中获取 EditText 的父 View ?我想在文本更改时获取其父 View 的标签。 由于 Button.OnClick() 直接将 View 作为
我有带有自定义适配器的旅行者列表,其中包含两个 EditText - edtFirstName 和 edtLastName。我希望当用户输入文本时将更改保存到列表,并在单击下一个按钮时将此列表发送到另
我是 Android 和 Java 编程的新手,最近遇到了一个问题。我一直在寻找几个小时的答案,但我没有成功。我有一个自定义 ListView 和一个自定义适配器,其中一行包含一个 CheckBox
我是一名优秀的程序员,十分优秀!