【发布时间】:2016-12-15 00:20:17
【问题描述】:
我正在尝试绑定:
@Bindable
public float getRoundInEditAmount()
{
return roundInEdit.getAmount();
}
@Bindable
public void setRoundInEditAmount(float amount)
{
roundInEdit.setAmount(amount);
notifyPropertyChanged(BR.roundInEditAmount);
}
到
<EditText
android:layout_width="100dp"
android:layout_height="50dp"
android:inputType="numberDecimal"
android:text="@={`` + weightSet.roundInEditAmount}"
></EditText>
但是,在单击 EditText 时,我会看到一个文本输入而不是数字键盘。如果我再次单击此 EditText,则会看到数字键盘。如果该字段已默认为 50.0 或其他值,我无法删除这些金额。我可以输入文字,但它确实存在。
有没有其他人遇到过这种行为,第一次点击时出现的是文本输入而不是数字键盘? EditText 上的两种方式绑定也按我期望的方式工作。我已经编写了自己的 Binding 和 InverseBinding 适配器,它们的行为方式相同 -> 第一次单击时为 TextInput,然后在第二次单击时为数字键盘,但你不能删除你开始的数字。
【问题讨论】:
-
你能解释一下为什么第一次点击需要文本输入,第二次点击需要数字键盘吗?
-
如果您阅读该问题,您会发现这不是必需的,而是实际行为。
-
你好,roundInEdit 是什么类型的变量
-
你好,这是一个浮动
-
您能发布您的自定义
BindingAdapters吗?您在初始绑定中将float转换为string,这会导致键盘出现问题。
标签: android android-databinding