android - 用于已签名整数的 Android 数据绑定转换器
问题描述
我一直在试图弄清楚如何创建一个 DataBindingConverter 以允许对可能包含有符号整数的 edittext 字段进行双向数据绑定。目前,我的转换器功能如下所示。
@InverseMethod("convertStringToInt")
fun convertIntToString(value: Int?): String {
return value?.toString() ?: ""
}
fun convertStringToInt(value: String): Int? {
if (TextUtils.isEmpty(value) || !value.matches(Regex("-?\\d*"))) {
return null
}
return value.toIntOrNull()
}
虽然这在技术上允许负值,但尝试以“-”符号开头自然地输入负数显然会失败,因为“-”不是 int,因此默认为 null 并将 edittext 设置为空字符串。现在我只是通过绑定可能包含负数作为字符串的edittext字段并在视图模型中需要时将它们解析出来来回避这个问题,但我想知道是否有更清洁的解决方案。
解决方案
推荐阅读
- python - 如何使用 google colab 对 google 驱动器中的文件使用 read sql 查询?我已经尝试了以下文件,但没有成功
- azure - 首次登录时不提示更改密码
- javascript - 使用Javascript从单元格表中获取第二个子值
- azure - PS:从 LB 池中删除 Azure NIC
- c - MIPS:在函数调用和返回中将 C 代码转换为 MIPS 问题
- android - 要使用的数据类型而不是 MutableLiveData?
- python - Python:在字符串中搜索一个数字,减少该数字并在字符串中替换
- java - Java中的数组或集合循环
- python - 如何从另一个目录导入 python 包?
- django - Datetimepicker 和 DJANGO 无法正确加载