我使用Androids绑定来填充我的Spinner并在模型中设置所选项目。这到目前为止工作正常。但是当我加载一个具有先前设置的Spinner值的模型时,它总是被设置为Spinners列表中的第一个项目。
这是布局文件中的Spinners摘录:
<Spinner
android:id="@+id/typeSpinner"
android:layout_width="match_parent"
android:layout_height="@dimen/spinner_height"
android:layout_marginEnd="16dp"
android:entries="@{obj.CREATOR.TYPES}"
android:selectedItemPosition="@={obj.toInt(obj.type)}"/>
用于绑定的转换方法:
@InverseMethod("toPhoneType")
fun toInt(@TYPE phoneType: String): Int {
return TYPES.indexOf(phoneType)
}
fun toPhoneType(@TYPE ordinal: Int): String {
return TYPES[ordinal]
}
我找到了this旧帖子,但是(已接受的)解决方案已经适用于我的代码。