Android-通过数据绑定将对象传递给视图标记
我试图用它们的标记控制视图的某些状态 我有一个Android-通过数据绑定将对象传递给视图标记,android,kotlin,Android,Kotlin,我试图用它们的标记控制视图的某些状态 我有一个密封类,其中包含与我的视图相关的对象 sealed class AuthFieldState: BaseFieldState(){ object IdentifierFieldState: AuthFieldState() object NameFieldState: AuthFieldState() } 我把这个传给大家看,就像这样: android:tag="@{AuthFieldState.IdentifierFieldSt
密封类
,其中包含与我的视图相关的对象
sealed class AuthFieldState: BaseFieldState(){
object IdentifierFieldState: AuthFieldState()
object NameFieldState: AuthFieldState()
}
我把这个传给大家看,就像这样:
android:tag="@{AuthFieldState.IdentifierFieldState}"
sealed class AuthFieldState {
object IdentifierFieldState: AuthFieldState() {
override fun toString() = this.javaClass.simpleName
}
object NameFieldState: AuthFieldState()
}
<data>
<import type="com.yourpackage.AuthFieldState" />
</data>
...
android:tag="@{AuthFieldState.IdentifierFieldState.INSTANCE.toString()}"
但它向我显示了一个构建错误:
找不到访问者AuthFieldState.IdentifierFieldState
你们知道我怎么处理这个吗?标记不能是对象的实例,它必须是字符串
<!-- Supply a tag for this view containing a String, to be retrieved
later with {@link android.view.View#getTag View.getTag()} or
searched for with {@link android.view.View#findViewWithTag
View.findViewWithTag()}. It is generally preferable to use
IDs (through the android:id attribute) instead of tags because
they are faster and allow for compile-time type checking. -->
<attr name="tag" format="string" />
然后在xml导入类型中按如下方式使用:
android:tag="@{AuthFieldState.IdentifierFieldState}"
sealed class AuthFieldState {
object IdentifierFieldState: AuthFieldState() {
override fun toString() = this.javaClass.simpleName
}
object NameFieldState: AuthFieldState()
}
<data>
<import type="com.yourpackage.AuthFieldState" />
</data>
...
android:tag="@{AuthFieldState.IdentifierFieldState.INSTANCE.toString()}"
...
android:tag=“@{AuthFieldState.IdentifierFieldState.INSTANCE.toString()}”
标记不能是对象的实例,它必须是字符串
<!-- Supply a tag for this view containing a String, to be retrieved
later with {@link android.view.View#getTag View.getTag()} or
searched for with {@link android.view.View#findViewWithTag
View.findViewWithTag()}. It is generally preferable to use
IDs (through the android:id attribute) instead of tags because
they are faster and allow for compile-time type checking. -->
<attr name="tag" format="string" />
然后在xml导入类型中按如下方式使用:
android:tag="@{AuthFieldState.IdentifierFieldState}"
sealed class AuthFieldState {
object IdentifierFieldState: AuthFieldState() {
override fun toString() = this.javaClass.simpleName
}
object NameFieldState: AuthFieldState()
}
<data>
<import type="com.yourpackage.AuthFieldState" />
</data>
...
android:tag="@{AuthFieldState.IdentifierFieldState.INSTANCE.toString()}"
...
android:tag=“@{AuthFieldState.IdentifierFieldState.INSTANCE.toString()}”
我仍然被困在同一个错误中。我试图将一些通用的东西传递给视图,其中我拥有的MutableLiveData
可以管理屏幕的状态。每个字段都需要一个不同的状态,但我仍然陷入了相同的错误中。我试图将一些通用的东西传递给视图,其中我拥有的MutableLiveData
可以管理屏幕的状态。每个字段都需要一个不同的状态