【发布时间】:2021-08-18 05:03:20
【问题描述】:
我在使用整数数据类型进行双向绑定时遇到了一些问题。
视图模型
var saleType: MutableLiveData<Int> = MutableLiveData(1)
var saleDetail: MutableLiveData<Int> = MutableLiveData(0)
var salePrice: MutableLiveData<Int> = MutableLiveData(0)
var saleRate: MutableLiveData<Int> = MutableLiveData(0)
var printAmount: MutableLiveData<Int> = MutableLiveData(1)
layout.xml
<data>
<import type="com.package.utils.DataBindingConverters" />
<variable
name="viewModel"
type="com.package.ViewModel" />
</data>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/sale_detail_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:gravity="right"
android:selectAllOnFocus="true"
android:inputType="number"
android:imeOptions="actionDone"
android:singleLine="true"
android:maxLines="1"
app:inputContent="@={DataBindingConverters.convertIntegerToString(viewModel.saleDetail)}"
/>
DataBindingConverters
class DataBindingConverters {
companion object {
@InverseMethod("convertStringToInteger")
@JvmStatic
fun convertStringToInteger(value: String): Int? {
if (TextUtils.isEmpty(value) || !TextUtils.isDigitsOnly(value)) {
return null
}
return value.toIntOrNull()
}
@InverseMethod("convertIntegerToString")
@JvmStatic
fun convertIntegerToString(value: Int?): String {
return value?.toString() ?: ""
}
}
}
出现这样的错误
cannot find method convertIntegerToString(java.lang.String) in class com.package.utils.DataBindingConverters
我认为在双向绑定中处理 IntegerToString 的值会很好,但我得到一个找不到方法的错误。
在双向绑定中,有没有其他处理Integer的方法?
【问题讨论】:
标签: android android-livedata two-way-binding