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。我尝试将 number
和 text
值用单引号和双引号(转义)引起来。
我该如何解决这个问题?
number
和 text
值将被视为 Java 上下文中的变量。您必须确保设置适当的 Java 值。首先,您必须在 <data>
块中导入 InputType
。然后使用相关的整数值。
<EditText
android:inputType="@{parameter.isNumeric() ? InputType.TYPE_CLASS_NUMBER : InputType.TYPE_CLASS_TEXT}" />
我有一个 EditText
,我想根据 Parameter
是否为数字来设置它的 inputType
:
interface Parameter {
boolean isNumeric();
}
我有这个:
<EditText
...
android:inputType="@{parameter.isNumeric()? number : text}"/>
但是解析时出现错误XML。我尝试将 number
和 text
值用单引号和双引号(转义)引起来。
我该如何解决这个问题?
number
和 text
值将被视为 Java 上下文中的变量。您必须确保设置适当的 Java 值。首先,您必须在 <data>
块中导入 InputType
。然后使用相关的整数值。
<EditText
android:inputType="@{parameter.isNumeric() ? InputType.TYPE_CLASS_NUMBER : InputType.TYPE_CLASS_TEXT}" />