在数据绑定编辑文本整数值中不起作用


<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/cow_no_of_child_edittext"
android:inputType="number"
android:text="@={String.valueOf(cow.noOfChild)}" <- This atribute
android:hint="@string/no_of_child"
android:textSize="@dimen/text_size_22sp"/>

嗨,我在安卓数据绑定中遇到问题。编辑文本已成功获取字符串值。但它不适用于整数值。在Android监控日志中,我收到以下异常消息:

错误:(165, 34) 表达式 java.lang.String.valueOf(cowNoOfChild) 不能反转:方法 valueOf 没有反转,您必须向方法添加@InverseMethod注释,以指示在双向绑定表达式中使用该方法时应使用哪个方法 错误:(165, 34) 表达式 java.lang.String.valueOf(cowNoOfChild) 不能反转:方法 valueOf 没有反转,您必须向方法添加@InverseMethod注释,以指示在双向绑定表达式中使用该方法时应使用哪个方法 错误:(165, 34) 表达式 java.lang.String.valueOf(cowNoOfChild) 不能反转:方法 valueOf 没有逆向,您必须向方法添加@InverseMethod注释,以指示在双向绑定表达式中使用该方法时应使用哪个方法

请为我提供解决方案。

您需要声明@BindingAdapter以将String值设置为android:text属性,@InverseBindingAdapter以返回值:

public class BindingUtils {
@BindingAdapter("android:text")
public static void setText(EditText view, String value) {
view.setText(value);
}
@InverseBindingAdapter(attribute = "android:text")
public static String getText(EditText view) {
return view.getText().toString();
}
}

另请参阅另一个float用法示例

最新更新