<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onValueChange="@{handler.passwordValidator}"
android:text="@={model.password}"/>
我找不到android:onValueChange
的参数。我应该在下面的方法参数中输入什么?
public void passwordValidator() {
}
我试图将空方法传递给该属性,以为日志会告诉我其参数,但我无法理解。
我在EditText Documentation中找不到它。
Google search results 不包含与此有关的任何信息。
android:onValueChange="@{handler.passwordValidator}"
android:onValueChange="@{handler::passwordValidator}"
android:onValueChange="@{()->handler.passwordValidator()}"
android:onValueChange="@{(v)->handler.passwordValidator()}"
android:onValueChange="@{(view, value) ->handler.passwordValidator()}"
还请提供一种找到任何属性的参数的方法,以便我自己找到自己。
请注意,它与android:onTextChanged
无关。
@Tenten我有建议。
这不能是Android的错误,因为当您放置未知属性时,编译后就会出现错误。
案例1(未知属性)
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:asdf=""
android:text="@={model.password}"/>
AGPBI:{“种类”:“错误”,“文本”:“错误:属性 \ u0027android:asdf \ u0027不是 找到。“,”源“:[{”文件“:” E:\ AndroidWorkspace \ RawSamples \ Sample \ app \ src \ main \ res \ layout \ activity_main.xml“,”位置“:{” startLine“:23} }],“原始”:“”,“工具”:“ AAPT”}
案例2(使用android:onValueChange
)
在这种情况下,错误已更改,如果没有android:onValueChange
属性,则错误应该相同。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onValueChange="@{handler::passwordValidator}"
android:text="@={model.password}"/>
- 出了什么问题:任务':app:compileDebugJavaWithJavac'的执行失败。
android.databinding.tool.util.LoggedErrorException:发现数据绑定错误。 **** /数据绑定错误**** msg:无法解决 handler :: passwordValidator作为侦听器。
文件:E:\ AndroidWorkspace \ RawSamples \ Sample \ app \ src \ main \ res \ layout \ activity_main.xml loc:23:37-23:62 **** \数据绑定错误****
答案 0 :(得分:0)
替换:
"@{handler.passwordValidator()}"
使用
"@{handler::passwordValidator}"
还将以下方法设为非静态
public void passwordValidator(View view) {
}
答案 1 :(得分:0)
使用此
EditText myTextBox = (EditText) findViewById(R.id.myTextBox);
myTextBox.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
passwordValidator(s.toString());
}
});
还有这个
public void passwordValidator(String password) {
}