Android 数据绑定库中具有字符串文字的三元运算符

Ternary operator with String literals in Android Data Binding Library

我有一个 EditText,我想根据 Parameter 是否为数字来设置它的 inputType

interface Parameter {
    boolean isNumeric();
}

我有这个:

   <EditText
       ...
       android:inputType="@{parameter.isNumeric()? number : text}"/>

但是解析时出现错误XML。我尝试将 numbertext 值用单引号和双引号(转义)引起来。

我该如何解决这个问题?

numbertext 值将被视为 Java 上下文中的变量。您必须确保设置适当的 Java 值。首先,您必须在 <data> 块中导入 InputType。然后使用相关的整数值。

<EditText
    android:inputType="@{parameter.isNumeric() ? InputType.TYPE_CLASS_NUMBER : InputType.TYPE_CLASS_TEXT}" />